From b9d7e9c232a4371ddfed51c58e5a57f87b057229 Mon Sep 17 00:00:00 2001 From: Ashwin Sridharan Date: Fri, 4 Oct 2019 11:29:04 -0400 Subject: [PATCH] Initial commit of Admission Control xAPP and E2AP/X2AP definitions Includes build and run instructions Updated readme instructions and added license Added reset functionality in protector plugin Added logging to xapp framework Signed-off-by: Ashwin Sridharan Change-Id: Ief17341ba3b2d8e41443c95afa562e3af6ecc123 Signed-off-by: Ashwin Sridharan --- Dockerfile | 114 + README.md | 36 + asn1c_defs/all-defs/ABS-Status.c | 73 + asn1c_defs/all-defs/ABS-Status.h | 48 + asn1c_defs/all-defs/ABSInformation.c | 74 + asn1c_defs/all-defs/ABSInformation.h | 61 + asn1c_defs/all-defs/ABSInformationFDD.c | 205 + asn1c_defs/all-defs/ABSInformationFDD.h | 62 + asn1c_defs/all-defs/ABSInformationTDD.c | 205 + asn1c_defs/all-defs/ABSInformationTDD.h | 62 + asn1c_defs/all-defs/ANY.c | 450 + asn1c_defs/all-defs/ANY.h | 65 + asn1c_defs/all-defs/AS-SecurityInformation.c | 73 + asn1c_defs/all-defs/AS-SecurityInformation.h | 50 + asn1c_defs/all-defs/ActionParameter-ID.c | 61 + asn1c_defs/all-defs/ActionParameter-ID.h | 44 + asn1c_defs/all-defs/ActionParameter-Item.c | 60 + asn1c_defs/all-defs/ActionParameter-Item.h | 46 + asn1c_defs/all-defs/ActionParameter-Value.c | 102 + asn1c_defs/all-defs/ActionParameter-Value.h | 70 + asn1c_defs/all-defs/ActivatedCellList-Item.c | 63 + asn1c_defs/all-defs/ActivatedCellList-Item.h | 48 + asn1c_defs/all-defs/ActivatedCellList.c | 50 + asn1c_defs/all-defs/ActivatedCellList.h | 41 + asn1c_defs/all-defs/ActivatedNRCellList-Item.c | 63 + asn1c_defs/all-defs/ActivatedNRCellList-Item.h | 48 + asn1c_defs/all-defs/ActivatedNRCellList.c | 50 + asn1c_defs/all-defs/ActivatedNRCellList.h | 41 + asn1c_defs/all-defs/ActivationID.c | 61 + asn1c_defs/all-defs/ActivationID.h | 43 + .../all-defs/AdditionalSpecialSubframe-Info.c | 83 + .../all-defs/AdditionalSpecialSubframe-Info.h | 50 + .../AdditionalSpecialSubframeExtension-Info.c | 83 + .../AdditionalSpecialSubframeExtension-Info.h | 50 + .../all-defs/AdditionalSpecialSubframePatterns.c | 71 + .../all-defs/AdditionalSpecialSubframePatterns.h | 62 + .../AdditionalSpecialSubframePatternsExtension.c | 53 + .../AdditionalSpecialSubframePatternsExtension.h | 53 + .../all-defs/AerialUEsubscriptionInformation.c | 55 + .../all-defs/AerialUEsubscriptionInformation.h | 52 + .../all-defs/AllocationAndRetentionPriority.c | 83 + .../all-defs/AllocationAndRetentionPriority.h | 52 + asn1c_defs/all-defs/AreaScopeOfMDT.c | 85 + asn1c_defs/all-defs/AreaScopeOfMDT.h | 66 + asn1c_defs/all-defs/AreaScopeOfQMC.c | 86 + asn1c_defs/all-defs/AreaScopeOfQMC.h | 67 + asn1c_defs/all-defs/BIT_STRING.c | 656 + asn1c_defs/all-defs/BIT_STRING.h | 48 + asn1c_defs/all-defs/BOOLEAN.c | 492 + asn1c_defs/all-defs/BOOLEAN.h | 45 + asn1c_defs/all-defs/BandInfo.c | 63 + asn1c_defs/all-defs/BandInfo.h | 48 + asn1c_defs/all-defs/BandwidthReducedSI.c | 53 + asn1c_defs/all-defs/BandwidthReducedSI.h | 51 + asn1c_defs/all-defs/BearerType.c | 53 + asn1c_defs/all-defs/BearerType.h | 53 + asn1c_defs/all-defs/BenefitMetric.c | 61 + asn1c_defs/all-defs/BenefitMetric.h | 44 + asn1c_defs/all-defs/BitRate.c | 67 + asn1c_defs/all-defs/BitRate.h | 44 + asn1c_defs/all-defs/BluetoothMeasConfig.c | 53 + asn1c_defs/all-defs/BluetoothMeasConfig.h | 53 + asn1c_defs/all-defs/BluetoothMeasConfigNameList.c | 49 + asn1c_defs/all-defs/BluetoothMeasConfigNameList.h | 42 + .../all-defs/BluetoothMeasurementConfiguration.c | 130 + .../all-defs/BluetoothMeasurementConfiguration.h | 59 + asn1c_defs/all-defs/BluetoothName.c | 62 + asn1c_defs/all-defs/BluetoothName.h | 44 + asn1c_defs/all-defs/BroadcastPLMNs-Item.c | 49 + asn1c_defs/all-defs/BroadcastPLMNs-Item.h | 42 + asn1c_defs/all-defs/CNTypeRestrictions.c | 50 + asn1c_defs/all-defs/CNTypeRestrictions.h | 41 + asn1c_defs/all-defs/CNTypeRestrictionsItem.c | 119 + asn1c_defs/all-defs/CNTypeRestrictionsItem.h | 59 + asn1c_defs/all-defs/COUNTValueExtended.c | 73 + asn1c_defs/all-defs/COUNTValueExtended.h | 48 + asn1c_defs/all-defs/COUNTvalue.c | 73 + asn1c_defs/all-defs/COUNTvalue.h | 50 + asn1c_defs/all-defs/COUNTvaluePDCP-SNlength18.c | 73 + asn1c_defs/all-defs/COUNTvaluePDCP-SNlength18.h | 48 + asn1c_defs/all-defs/CRNTI.c | 67 + asn1c_defs/all-defs/CRNTI.h | 43 + asn1c_defs/all-defs/CSG-Id.c | 67 + asn1c_defs/all-defs/CSG-Id.h | 43 + asn1c_defs/all-defs/CSGMembershipStatus.c | 53 + asn1c_defs/all-defs/CSGMembershipStatus.h | 49 + asn1c_defs/all-defs/CSIReportList.c | 114 + asn1c_defs/all-defs/CSIReportList.h | 58 + asn1c_defs/all-defs/CSIReportPerCSIProcess.c | 144 + asn1c_defs/all-defs/CSIReportPerCSIProcess.h | 61 + asn1c_defs/all-defs/CSIReportPerCSIProcessItem.c | 165 + asn1c_defs/all-defs/CSIReportPerCSIProcessItem.h | 65 + asn1c_defs/all-defs/CallProcess-ID.c | 31 + asn1c_defs/all-defs/CallProcess-ID.h | 43 + asn1c_defs/all-defs/CapacityValue.c | 61 + asn1c_defs/all-defs/CapacityValue.h | 44 + asn1c_defs/all-defs/Cause.c | 82 + asn1c_defs/all-defs/Cause.h | 65 + asn1c_defs/all-defs/CauseMisc.c | 61 + asn1c_defs/all-defs/CauseMisc.h | 57 + asn1c_defs/all-defs/CauseProtocol.c | 65 + asn1c_defs/all-defs/CauseProtocol.h | 59 + asn1c_defs/all-defs/CauseRIC.c | 77 + asn1c_defs/all-defs/CauseRIC.h | 65 + asn1c_defs/all-defs/CauseRadioNetwork.c | 153 + asn1c_defs/all-defs/CauseRadioNetwork.h | 103 + asn1c_defs/all-defs/CauseTransport.c | 55 + asn1c_defs/all-defs/CauseTransport.h | 54 + asn1c_defs/all-defs/Cell-Size.c | 59 + asn1c_defs/all-defs/Cell-Size.h | 56 + asn1c_defs/all-defs/CellActivationFailure.c | 50 + asn1c_defs/all-defs/CellActivationFailure.h | 44 + asn1c_defs/all-defs/CellActivationRequest.c | 50 + asn1c_defs/all-defs/CellActivationRequest.h | 44 + asn1c_defs/all-defs/CellActivationResponse.c | 50 + asn1c_defs/all-defs/CellActivationResponse.h | 44 + asn1c_defs/all-defs/CellAssistanceInformation.c | 109 + asn1c_defs/all-defs/CellAssistanceInformation.h | 65 + asn1c_defs/all-defs/CellBasedMDT.c | 63 + asn1c_defs/all-defs/CellBasedMDT.h | 48 + asn1c_defs/all-defs/CellBasedQMC.c | 63 + asn1c_defs/all-defs/CellBasedQMC.h | 48 + asn1c_defs/all-defs/CellCapacityClassValue.c | 61 + asn1c_defs/all-defs/CellCapacityClassValue.h | 44 + .../all-defs/CellDeploymentStatusIndicator.c | 53 + .../all-defs/CellDeploymentStatusIndicator.h | 53 + asn1c_defs/all-defs/CellIdListforMDT.c | 50 + asn1c_defs/all-defs/CellIdListforMDT.h | 44 + asn1c_defs/all-defs/CellIdListforQMC.c | 50 + asn1c_defs/all-defs/CellIdListforQMC.h | 44 + asn1c_defs/all-defs/CellInformation-Item.c | 96 + asn1c_defs/all-defs/CellInformation-Item.h | 52 + asn1c_defs/all-defs/CellInformation-List.c | 50 + asn1c_defs/all-defs/CellInformation-List.h | 41 + asn1c_defs/all-defs/CellMeasurementResult-Item.c | 96 + asn1c_defs/all-defs/CellMeasurementResult-Item.h | 52 + asn1c_defs/all-defs/CellMeasurementResult-List.c | 50 + asn1c_defs/all-defs/CellMeasurementResult-List.h | 41 + asn1c_defs/all-defs/CellReplacingInfo.c | 63 + asn1c_defs/all-defs/CellReplacingInfo.h | 48 + asn1c_defs/all-defs/CellReportingIndicator.c | 53 + asn1c_defs/all-defs/CellReportingIndicator.h | 51 + asn1c_defs/all-defs/CellToReport-Item.c | 63 + asn1c_defs/all-defs/CellToReport-Item.h | 46 + asn1c_defs/all-defs/CellToReport-List.c | 50 + asn1c_defs/all-defs/CellToReport-List.h | 41 + asn1c_defs/all-defs/CellType.c | 63 + asn1c_defs/all-defs/CellType.h | 48 + asn1c_defs/all-defs/CoMPHypothesisSet.c | 50 + asn1c_defs/all-defs/CoMPHypothesisSet.h | 44 + asn1c_defs/all-defs/CoMPHypothesisSetItem.c | 109 + asn1c_defs/all-defs/CoMPHypothesisSetItem.h | 50 + asn1c_defs/all-defs/CoMPInformation.c | 73 + asn1c_defs/all-defs/CoMPInformation.h | 48 + asn1c_defs/all-defs/CoMPInformationItem.c | 114 + asn1c_defs/all-defs/CoMPInformationItem.h | 61 + asn1c_defs/all-defs/CoMPInformationStartTime.c | 174 + asn1c_defs/all-defs/CoMPInformationStartTime.h | 60 + .../CompleteFailureCauseInformation-Item.c | 73 + .../CompleteFailureCauseInformation-Item.h | 48 + .../CompleteFailureCauseInformation-List.c | 50 + .../CompleteFailureCauseInformation-List.h | 41 + asn1c_defs/all-defs/CompositeAvailableCapacity.c | 73 + asn1c_defs/all-defs/CompositeAvailableCapacity.h | 50 + .../all-defs/CompositeAvailableCapacityGroup.c | 73 + .../all-defs/CompositeAvailableCapacityGroup.h | 47 + asn1c_defs/all-defs/Correlation-ID.c | 62 + asn1c_defs/all-defs/Correlation-ID.h | 43 + asn1c_defs/all-defs/CoverageModification-Item.c | 113 + asn1c_defs/all-defs/CoverageModification-Item.h | 52 + asn1c_defs/all-defs/CoverageModificationList.c | 50 + asn1c_defs/all-defs/CoverageModificationList.h | 41 + asn1c_defs/all-defs/Criticality.c | 55 + asn1c_defs/all-defs/Criticality.h | 52 + .../all-defs/CriticalityDiagnostics-IE-List.c | 124 + .../all-defs/CriticalityDiagnostics-IE-List.h | 63 + asn1c_defs/all-defs/CriticalityDiagnostics.c | 94 + asn1c_defs/all-defs/CriticalityDiagnostics.h | 52 + asn1c_defs/all-defs/CyclicPrefixDL.c | 55 + asn1c_defs/all-defs/CyclicPrefixDL.h | 54 + asn1c_defs/all-defs/CyclicPrefixUL.c | 55 + asn1c_defs/all-defs/CyclicPrefixUL.h | 54 + asn1c_defs/all-defs/DL-ABS-status.c | 61 + asn1c_defs/all-defs/DL-ABS-status.h | 44 + asn1c_defs/all-defs/DL-Forwarding.c | 53 + asn1c_defs/all-defs/DL-Forwarding.h | 53 + asn1c_defs/all-defs/DL-GBR-PRB-usage.c | 61 + asn1c_defs/all-defs/DL-GBR-PRB-usage.h | 44 + asn1c_defs/all-defs/DL-Total-PRB-usage.c | 61 + asn1c_defs/all-defs/DL-Total-PRB-usage.h | 44 + asn1c_defs/all-defs/DL-non-GBR-PRB-usage.c | 61 + asn1c_defs/all-defs/DL-non-GBR-PRB-usage.h | 44 + .../all-defs/DL-scheduling-PDCCH-CCE-usage.c | 61 + .../all-defs/DL-scheduling-PDCCH-CCE-usage.h | 43 + .../all-defs/DLResourceBitmapULandDLSharing.c | 67 + .../all-defs/DLResourceBitmapULandDLSharing.h | 44 + asn1c_defs/all-defs/DLResourcesULandDLSharing.c | 62 + asn1c_defs/all-defs/DLResourcesULandDLSharing.h | 59 + asn1c_defs/all-defs/DRB-ID.c | 61 + asn1c_defs/all-defs/DRB-ID.h | 44 + .../all-defs/DataForwardingAddressIndication.c | 50 + .../all-defs/DataForwardingAddressIndication.h | 44 + .../all-defs/DataTrafficResourceIndication.c | 114 + .../all-defs/DataTrafficResourceIndication.h | 50 + asn1c_defs/all-defs/DataTrafficResources.c | 67 + asn1c_defs/all-defs/DataTrafficResources.h | 44 + asn1c_defs/all-defs/DeactivationIndication.c | 53 + asn1c_defs/all-defs/DeactivationIndication.h | 53 + asn1c_defs/all-defs/DeliveryStatus.c | 93 + asn1c_defs/all-defs/DeliveryStatus.h | 48 + asn1c_defs/all-defs/DuplicationActivation.c | 55 + asn1c_defs/all-defs/DuplicationActivation.h | 52 + .../all-defs/DynamicDLTransmissionInformation.c | 63 + .../all-defs/DynamicDLTransmissionInformation.h | 58 + asn1c_defs/all-defs/DynamicNAICSInformation.c | 222 + asn1c_defs/all-defs/DynamicNAICSInformation.h | 59 + asn1c_defs/all-defs/E-RAB-ID.c | 61 + asn1c_defs/all-defs/E-RAB-ID.h | 44 + asn1c_defs/all-defs/E-RAB-Item.c | 73 + asn1c_defs/all-defs/E-RAB-Item.h | 48 + asn1c_defs/all-defs/E-RAB-Level-QoS-Parameters.c | 84 + asn1c_defs/all-defs/E-RAB-Level-QoS-Parameters.h | 52 + asn1c_defs/all-defs/E-RAB-List.c | 50 + asn1c_defs/all-defs/E-RAB-List.h | 41 + asn1c_defs/all-defs/E-RABUsageReport-Item.c | 227 + asn1c_defs/all-defs/E-RABUsageReport-Item.h | 50 + asn1c_defs/all-defs/E-RABUsageReportList.c | 50 + asn1c_defs/all-defs/E-RABUsageReportList.h | 44 + asn1c_defs/all-defs/E-RABs-Admitted-Item.c | 84 + asn1c_defs/all-defs/E-RABs-Admitted-Item.h | 49 + asn1c_defs/all-defs/E-RABs-Admitted-List.c | 50 + asn1c_defs/all-defs/E-RABs-Admitted-List.h | 41 + .../E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.c | 94 + .../E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.h | 53 + .../E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.c | 73 + .../E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.h | 50 + .../all-defs/E-RABs-Admitted-ToBeAdded-Item.c | 64 + .../all-defs/E-RABs-Admitted-ToBeAdded-Item.h | 58 + .../all-defs/E-RABs-Admitted-ToBeAdded-List.c | 50 + .../all-defs/E-RABs-Admitted-ToBeAdded-List.h | 41 + ...RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.c | 94 + ...RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.h | 53 + ...Bs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.c | 73 + ...Bs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.h | 50 + .../E-RABs-Admitted-ToBeAdded-ModAckItem.c | 64 + .../E-RABs-Admitted-ToBeAdded-ModAckItem.h | 58 + .../E-RABs-Admitted-ToBeAdded-ModAckList.c | 50 + .../E-RABs-Admitted-ToBeAdded-ModAckList.h | 41 + ...BeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.c | 74 + ...BeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.h | 50 + ...-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.c | 126 + ...-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.h | 58 + .../E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.c | 139 + .../E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.h | 74 + .../E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.c | 50 + .../E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.h | 41 + ...-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.c | 74 + ...-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.h | 50 + ...ted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.c | 126 + ...ted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.h | 58 + .../E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.c | 139 + .../E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.h | 74 + .../E-RABs-Admitted-ToBeAdded-SgNBModAckList.c | 50 + .../E-RABs-Admitted-ToBeAdded-SgNBModAckList.h | 41 + ...s-Admitted-ToBeModified-ModAckItem-SCG-Bearer.c | 74 + ...s-Admitted-ToBeModified-ModAckItem-SCG-Bearer.h | 50 + ...Admitted-ToBeModified-ModAckItem-Split-Bearer.c | 74 + ...Admitted-ToBeModified-ModAckItem-Split-Bearer.h | 50 + .../E-RABs-Admitted-ToBeModified-ModAckItem.c | 64 + .../E-RABs-Admitted-ToBeModified-ModAckItem.h | 58 + .../E-RABs-Admitted-ToBeModified-ModAckList.c | 50 + .../E-RABs-Admitted-ToBeModified-ModAckList.h | 41 + ...BeModified-SgNBModAck-Item-SgNBPDCPnotpresent.c | 64 + ...BeModified-SgNBModAck-Item-SgNBPDCPnotpresent.h | 48 + ...-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.c | 96 + ...-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.h | 53 + .../E-RABs-Admitted-ToBeModified-SgNBModAck-Item.c | 139 + .../E-RABs-Admitted-ToBeModified-SgNBModAck-Item.h | 74 + .../E-RABs-Admitted-ToBeModified-SgNBModAckList.c | 50 + .../E-RABs-Admitted-ToBeModified-SgNBModAckList.h | 41 + ...s-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.c | 63 + ...s-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.h | 48 + ...Admitted-ToBeReleased-ModAckItem-Split-Bearer.c | 63 + ...Admitted-ToBeReleased-ModAckItem-Split-Bearer.h | 48 + .../E-RABs-Admitted-ToBeReleased-ModAckList.c | 50 + .../E-RABs-Admitted-ToBeReleased-ModAckList.h | 41 + ...BeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.c | 53 + ...BeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.h | 46 + ...-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.c | 53 + ...-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.h | 46 + .../E-RABs-Admitted-ToBeReleased-SgNBModAckList.c | 50 + .../E-RABs-Admitted-ToBeReleased-SgNBModAckList.h | 41 + ...RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.c | 73 + ...RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.h | 48 + ...-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.c | 50 + ...-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.h | 41 + .../E-RABs-Admitted-ToReleased-ModAckItem.c | 64 + .../E-RABs-Admitted-ToReleased-ModAckItem.h | 58 + .../E-RABs-Admitted-ToReleased-SgNBModAck-Item.c | 139 + .../E-RABs-Admitted-ToReleased-SgNBModAck-Item.h | 74 + ...eModified-SgNBModConf-Item-SgNBPDCPnotpresent.c | 64 + ...eModified-SgNBModConf-Item-SgNBPDCPnotpresent.h | 48 + ...ToBeModified-SgNBModConf-Item-SgNBPDCPpresent.c | 53 + ...ToBeModified-SgNBModConf-Item-SgNBPDCPpresent.h | 46 + .../E-RABs-AdmittedToBeModified-SgNBModConf-Item.c | 139 + .../E-RABs-AdmittedToBeModified-SgNBModConf-Item.h | 74 + .../E-RABs-AdmittedToBeModified-SgNBModConfList.c | 50 + .../E-RABs-AdmittedToBeModified-SgNBModConfList.h | 41 + .../all-defs/E-RABs-DataForwardingAddress-Item.c | 73 + .../all-defs/E-RABs-DataForwardingAddress-Item.h | 48 + .../all-defs/E-RABs-DataForwardingAddress-List.c | 50 + .../all-defs/E-RABs-DataForwardingAddress-List.h | 41 + .../all-defs/E-RABs-SubjectToCounterCheck-List.c | 50 + .../all-defs/E-RABs-SubjectToCounterCheck-List.h | 41 + .../all-defs/E-RABs-SubjectToCounterCheckItem.c | 225 + .../all-defs/E-RABs-SubjectToCounterCheckItem.h | 51 + .../E-RABs-SubjectToSgNBCounterCheck-Item.c | 225 + .../E-RABs-SubjectToSgNBCounterCheck-Item.h | 51 + .../E-RABs-SubjectToSgNBCounterCheck-List.c | 50 + .../E-RABs-SubjectToSgNBCounterCheck-List.h | 41 + .../all-defs/E-RABs-SubjectToStatusTransfer-Item.c | 93 + .../all-defs/E-RABs-SubjectToStatusTransfer-Item.h | 51 + .../all-defs/E-RABs-SubjectToStatusTransfer-List.c | 50 + .../all-defs/E-RABs-SubjectToStatusTransfer-List.h | 41 + .../all-defs/E-RABs-ToBeAdded-Item-SCG-Bearer.c | 93 + .../all-defs/E-RABs-ToBeAdded-Item-SCG-Bearer.h | 54 + .../all-defs/E-RABs-ToBeAdded-Item-Split-Bearer.c | 83 + .../all-defs/E-RABs-ToBeAdded-Item-Split-Bearer.h | 52 + asn1c_defs/all-defs/E-RABs-ToBeAdded-Item.c | 64 + asn1c_defs/all-defs/E-RABs-ToBeAdded-Item.h | 58 + asn1c_defs/all-defs/E-RABs-ToBeAdded-List-ModReq.c | 50 + asn1c_defs/all-defs/E-RABs-ToBeAdded-List-ModReq.h | 44 + asn1c_defs/all-defs/E-RABs-ToBeAdded-List.c | 50 + asn1c_defs/all-defs/E-RABs-ToBeAdded-List.h | 41 + .../E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.c | 93 + .../E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.h | 54 + .../E-RABs-ToBeAdded-ModReqItem-Split-Bearer.c | 83 + .../E-RABs-ToBeAdded-ModReqItem-Split-Bearer.h | 52 + asn1c_defs/all-defs/E-RABs-ToBeAdded-ModReqItem.c | 64 + asn1c_defs/all-defs/E-RABs-ToBeAdded-ModReqItem.h | 58 + ...-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.c | 105 + ...-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.h | 56 + ...ABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.c | 105 + ...ABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.h | 56 + .../all-defs/E-RABs-ToBeAdded-SgNBAddReq-Item.c | 149 + .../all-defs/E-RABs-ToBeAdded-SgNBAddReq-Item.h | 76 + .../all-defs/E-RABs-ToBeAdded-SgNBAddReqList.c | 50 + .../all-defs/E-RABs-ToBeAdded-SgNBAddReqList.h | 41 + ...-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.c | 105 + ...-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.h | 56 + ...ABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.c | 105 + ...ABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.h | 56 + .../all-defs/E-RABs-ToBeAdded-SgNBModReq-Item.c | 149 + .../all-defs/E-RABs-ToBeAdded-SgNBModReq-Item.h | 76 + .../all-defs/E-RABs-ToBeAdded-SgNBModReq-List.c | 50 + .../all-defs/E-RABs-ToBeAdded-SgNBModReq-List.h | 44 + .../all-defs/E-RABs-ToBeModified-List-ModReq.c | 50 + .../all-defs/E-RABs-ToBeModified-List-ModReq.h | 44 + .../E-RABs-ToBeModified-ModReqItem-SCG-Bearer.c | 85 + .../E-RABs-ToBeModified-ModReqItem-SCG-Bearer.h | 52 + .../E-RABs-ToBeModified-ModReqItem-Split-Bearer.c | 85 + .../E-RABs-ToBeModified-ModReqItem-Split-Bearer.h | 52 + .../all-defs/E-RABs-ToBeModified-ModReqItem.c | 64 + .../all-defs/E-RABs-ToBeModified-ModReqItem.h | 58 + ...BeModified-SgNBModReq-Item-SgNBPDCPnotpresent.c | 86 + ...BeModified-SgNBModReq-Item-SgNBPDCPnotpresent.h | 52 + ...-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.c | 96 + ...-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.h | 53 + .../all-defs/E-RABs-ToBeModified-SgNBModReq-Item.c | 139 + .../all-defs/E-RABs-ToBeModified-SgNBModReq-Item.h | 74 + .../all-defs/E-RABs-ToBeModified-SgNBModReq-List.c | 50 + .../all-defs/E-RABs-ToBeModified-SgNBModReq-List.h | 44 + ...eModified-SgNBModReqd-Item-SgNBPDCPnotpresent.c | 74 + ...eModified-SgNBModReqd-Item-SgNBPDCPnotpresent.h | 49 + ...ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.c | 96 + ...ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.h | 53 + .../E-RABs-ToBeModified-SgNBModReqd-Item.c | 139 + .../E-RABs-ToBeModified-SgNBModReqd-Item.h | 74 + .../all-defs/E-RABs-ToBeModified-SgNBModReqdList.c | 50 + .../all-defs/E-RABs-ToBeModified-SgNBModReqdList.h | 41 + .../all-defs/E-RABs-ToBeReleased-List-ModReq.c | 50 + .../all-defs/E-RABs-ToBeReleased-List-ModReq.h | 44 + .../all-defs/E-RABs-ToBeReleased-List-RelConf.c | 50 + .../all-defs/E-RABs-ToBeReleased-List-RelConf.h | 41 + .../all-defs/E-RABs-ToBeReleased-List-RelReq.c | 50 + .../all-defs/E-RABs-ToBeReleased-List-RelReq.h | 41 + .../E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.c | 84 + .../E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.h | 51 + .../E-RABs-ToBeReleased-ModReqItem-Split-Bearer.c | 74 + .../E-RABs-ToBeReleased-ModReqItem-Split-Bearer.h | 50 + .../all-defs/E-RABs-ToBeReleased-ModReqItem.c | 64 + .../all-defs/E-RABs-ToBeReleased-ModReqItem.h | 58 + asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqd.c | 50 + asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqd.h | 41 + .../all-defs/E-RABs-ToBeReleased-ModReqdItem.c | 73 + .../all-defs/E-RABs-ToBeReleased-ModReqdItem.h | 48 + .../E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.c | 84 + .../E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.h | 51 + .../E-RABs-ToBeReleased-RelConfItem-Split-Bearer.c | 74 + .../E-RABs-ToBeReleased-RelConfItem-Split-Bearer.h | 50 + .../all-defs/E-RABs-ToBeReleased-RelConfItem.c | 64 + .../all-defs/E-RABs-ToBeReleased-RelConfItem.h | 58 + .../E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.c | 84 + .../E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.h | 51 + .../E-RABs-ToBeReleased-RelReqItem-Split-Bearer.c | 74 + .../E-RABs-ToBeReleased-RelReqItem-Split-Bearer.h | 50 + .../all-defs/E-RABs-ToBeReleased-RelReqItem.c | 64 + .../all-defs/E-RABs-ToBeReleased-RelReqItem.h | 58 + ...eReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.c | 53 + ...eReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.h | 46 + ...ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.c | 74 + ...ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.h | 49 + .../E-RABs-ToBeReleased-SgNBChaConf-Item.c | 139 + .../E-RABs-ToBeReleased-SgNBChaConf-Item.h | 74 + .../all-defs/E-RABs-ToBeReleased-SgNBChaConfList.c | 50 + .../all-defs/E-RABs-ToBeReleased-SgNBChaConfList.h | 41 + ...BeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.c | 53 + ...BeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.h | 46 + ...-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.c | 74 + ...-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.h | 49 + .../all-defs/E-RABs-ToBeReleased-SgNBModReq-Item.c | 139 + .../all-defs/E-RABs-ToBeReleased-SgNBModReq-Item.h | 74 + .../all-defs/E-RABs-ToBeReleased-SgNBModReq-List.c | 50 + .../all-defs/E-RABs-ToBeReleased-SgNBModReq-List.h | 44 + .../E-RABs-ToBeReleased-SgNBModReqd-Item.c | 73 + .../E-RABs-ToBeReleased-SgNBModReqd-Item.h | 48 + .../all-defs/E-RABs-ToBeReleased-SgNBModReqdList.c | 50 + .../all-defs/E-RABs-ToBeReleased-SgNBModReqdList.h | 41 + ...eReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.c | 53 + ...eReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.h | 46 + ...ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.c | 74 + ...ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.h | 49 + .../E-RABs-ToBeReleased-SgNBRelConf-Item.c | 139 + .../E-RABs-ToBeReleased-SgNBRelConf-Item.h | 74 + .../all-defs/E-RABs-ToBeReleased-SgNBRelConfList.c | 50 + .../all-defs/E-RABs-ToBeReleased-SgNBRelConfList.h | 41 + ...BeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.c | 53 + ...BeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.h | 46 + ...-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.c | 74 + ...-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.h | 49 + .../all-defs/E-RABs-ToBeReleased-SgNBRelReq-Item.c | 139 + .../all-defs/E-RABs-ToBeReleased-SgNBRelReq-Item.h | 74 + .../all-defs/E-RABs-ToBeReleased-SgNBRelReqList.c | 50 + .../all-defs/E-RABs-ToBeReleased-SgNBRelReqList.h | 41 + .../E-RABs-ToBeReleased-SgNBRelReqd-Item.c | 73 + .../E-RABs-ToBeReleased-SgNBRelReqd-Item.h | 48 + .../all-defs/E-RABs-ToBeReleased-SgNBRelReqdList.c | 50 + .../all-defs/E-RABs-ToBeReleased-SgNBRelReqdList.h | 41 + asn1c_defs/all-defs/E-RABs-ToBeSetup-Item.c | 93 + asn1c_defs/all-defs/E-RABs-ToBeSetup-Item.h | 52 + asn1c_defs/all-defs/E-RABs-ToBeSetup-List.c | 50 + asn1c_defs/all-defs/E-RABs-ToBeSetup-List.h | 44 + .../all-defs/E-RABs-ToBeSetup-ListRetrieve.c | 50 + .../all-defs/E-RABs-ToBeSetup-ListRetrieve.h | 44 + .../all-defs/E-RABs-ToBeSetupRetrieve-Item.c | 83 + .../all-defs/E-RABs-ToBeSetupRetrieve-Item.h | 50 + asn1c_defs/all-defs/E2AP-PDU.c | 75 + asn1c_defs/all-defs/E2AP-PDU.h | 61 + asn1c_defs/all-defs/E2SM-gNB-X2-actionDefinition.c | 136 + asn1c_defs/all-defs/E2SM-gNB-X2-actionDefinition.h | 53 + asn1c_defs/all-defs/E2SM-gNB-X2-callProcessID.c | 50 + asn1c_defs/all-defs/E2SM-gNB-X2-callProcessID.h | 42 + asn1c_defs/all-defs/E2SM-gNB-X2-controlHeader.c | 60 + asn1c_defs/all-defs/E2SM-gNB-X2-controlHeader.h | 44 + asn1c_defs/all-defs/E2SM-gNB-X2-controlMessage.c | 50 + asn1c_defs/all-defs/E2SM-gNB-X2-controlMessage.h | 42 + .../all-defs/E2SM-gNB-X2-eventTriggerDefinition.c | 156 + .../all-defs/E2SM-gNB-X2-eventTriggerDefinition.h | 57 + asn1c_defs/all-defs/E2SM-gNB-X2-indicationHeader.c | 72 + asn1c_defs/all-defs/E2SM-gNB-X2-indicationHeader.h | 46 + .../all-defs/E2SM-gNB-X2-indicationMessage.c | 50 + .../all-defs/E2SM-gNB-X2-indicationMessage.h | 42 + asn1c_defs/all-defs/EARFCN.c | 61 + asn1c_defs/all-defs/EARFCN.h | 44 + asn1c_defs/all-defs/EARFCNExtension.c | 61 + asn1c_defs/all-defs/EARFCNExtension.h | 43 + asn1c_defs/all-defs/ECGI.c | 73 + asn1c_defs/all-defs/ECGI.h | 50 + asn1c_defs/all-defs/EN-DC-ResourceConfiguration.c | 227 + asn1c_defs/all-defs/EN-DC-ResourceConfiguration.h | 76 + asn1c_defs/all-defs/ENB-ID.c | 226 + asn1c_defs/all-defs/ENB-ID.h | 61 + asn1c_defs/all-defs/ENBConfigurationUpdate.c | 50 + asn1c_defs/all-defs/ENBConfigurationUpdate.h | 44 + .../all-defs/ENBConfigurationUpdateAcknowledge.c | 50 + .../all-defs/ENBConfigurationUpdateAcknowledge.h | 44 + .../all-defs/ENBConfigurationUpdateFailure.c | 50 + .../all-defs/ENBConfigurationUpdateFailure.h | 44 + asn1c_defs/all-defs/ENDCCellActivationFailure.c | 50 + asn1c_defs/all-defs/ENDCCellActivationFailure.h | 44 + asn1c_defs/all-defs/ENDCCellActivationRequest.c | 50 + asn1c_defs/all-defs/ENDCCellActivationRequest.h | 44 + asn1c_defs/all-defs/ENDCCellActivationResponse.c | 50 + asn1c_defs/all-defs/ENDCCellActivationResponse.h | 44 + asn1c_defs/all-defs/ENDCConfigurationUpdate.c | 50 + asn1c_defs/all-defs/ENDCConfigurationUpdate.h | 44 + .../all-defs/ENDCConfigurationUpdateAcknowledge.c | 50 + .../all-defs/ENDCConfigurationUpdateAcknowledge.h | 44 + .../all-defs/ENDCConfigurationUpdateFailure.c | 50 + .../all-defs/ENDCConfigurationUpdateFailure.h | 44 + asn1c_defs/all-defs/ENDCPartialResetConfirm.c | 50 + asn1c_defs/all-defs/ENDCPartialResetConfirm.h | 44 + asn1c_defs/all-defs/ENDCPartialResetRequired.c | 50 + asn1c_defs/all-defs/ENDCPartialResetRequired.h | 44 + asn1c_defs/all-defs/ENDCX2RemovalFailure.c | 50 + asn1c_defs/all-defs/ENDCX2RemovalFailure.h | 44 + asn1c_defs/all-defs/ENDCX2RemovalRequest.c | 50 + asn1c_defs/all-defs/ENDCX2RemovalRequest.h | 44 + asn1c_defs/all-defs/ENDCX2RemovalResponse.c | 50 + asn1c_defs/all-defs/ENDCX2RemovalResponse.h | 44 + asn1c_defs/all-defs/ENDCX2SetupFailure.c | 50 + asn1c_defs/all-defs/ENDCX2SetupFailure.h | 44 + asn1c_defs/all-defs/ENDCX2SetupRequest.c | 50 + asn1c_defs/all-defs/ENDCX2SetupRequest.h | 44 + asn1c_defs/all-defs/ENDCX2SetupResponse.c | 50 + asn1c_defs/all-defs/ENDCX2SetupResponse.h | 44 + asn1c_defs/all-defs/EPLMNs.c | 49 + asn1c_defs/all-defs/EPLMNs.h | 42 + asn1c_defs/all-defs/ERABActivityNotifyItem.c | 73 + asn1c_defs/all-defs/ERABActivityNotifyItem.h | 50 + asn1c_defs/all-defs/ERABActivityNotifyItemList.c | 50 + asn1c_defs/all-defs/ERABActivityNotifyItemList.h | 41 + asn1c_defs/all-defs/EUTRA-Mode-Info.c | 64 + asn1c_defs/all-defs/EUTRA-Mode-Info.h | 61 + asn1c_defs/all-defs/EUTRANCellIdentifier.c | 67 + asn1c_defs/all-defs/EUTRANCellIdentifier.h | 44 + .../EUTRANRCellResourceCoordinationRequest.c | 50 + .../EUTRANRCellResourceCoordinationRequest.h | 44 + .../EUTRANRCellResourceCoordinationResponse.c | 50 + .../EUTRANRCellResourceCoordinationResponse.h | 44 + asn1c_defs/all-defs/EUTRANTraceID.c | 62 + asn1c_defs/all-defs/EUTRANTraceID.h | 44 + asn1c_defs/all-defs/EncryptionAlgorithms.c | 67 + asn1c_defs/all-defs/EncryptionAlgorithms.h | 44 + asn1c_defs/all-defs/EnhancedRNTP.c | 120 + asn1c_defs/all-defs/EnhancedRNTP.h | 50 + asn1c_defs/all-defs/EnhancedRNTPStartTime.c | 133 + asn1c_defs/all-defs/EnhancedRNTPStartTime.h | 49 + asn1c_defs/all-defs/ErrorIndication.c | 50 + asn1c_defs/all-defs/ErrorIndication.h | 44 + asn1c_defs/all-defs/EventType.c | 53 + asn1c_defs/all-defs/EventType.h | 53 + asn1c_defs/all-defs/ExpectedActivityPeriod.c | 61 + asn1c_defs/all-defs/ExpectedActivityPeriod.h | 44 + asn1c_defs/all-defs/ExpectedHOInterval.c | 65 + asn1c_defs/all-defs/ExpectedHOInterval.h | 59 + asn1c_defs/all-defs/ExpectedIdlePeriod.c | 61 + asn1c_defs/all-defs/ExpectedIdlePeriod.h | 44 + asn1c_defs/all-defs/ExpectedUEActivityBehaviour.c | 83 + asn1c_defs/all-defs/ExpectedUEActivityBehaviour.h | 52 + asn1c_defs/all-defs/ExpectedUEBehaviour.c | 74 + asn1c_defs/all-defs/ExpectedUEBehaviour.h | 48 + asn1c_defs/all-defs/ExtendedBitRate.c | 67 + asn1c_defs/all-defs/ExtendedBitRate.h | 43 + .../all-defs/ExtendedULInterferenceOverloadInfo.c | 109 + .../all-defs/ExtendedULInterferenceOverloadInfo.h | 48 + asn1c_defs/all-defs/FDD-Info.c | 93 + asn1c_defs/all-defs/FDD-Info.h | 52 + .../FDD-InfoNeighbourServedNRCell-Information.c | 73 + .../FDD-InfoNeighbourServedNRCell-Information.h | 49 + .../all-defs/FDD-InfoServedNRCell-Information.c | 93 + .../all-defs/FDD-InfoServedNRCell-Information.h | 52 + asn1c_defs/all-defs/FiveGS-TAC.c | 62 + asn1c_defs/all-defs/FiveGS-TAC.h | 44 + asn1c_defs/all-defs/ForbiddenInterRATs.c | 63 + asn1c_defs/all-defs/ForbiddenInterRATs.h | 58 + asn1c_defs/all-defs/ForbiddenLACs.c | 49 + asn1c_defs/all-defs/ForbiddenLACs.h | 42 + asn1c_defs/all-defs/ForbiddenLAs-Item.c | 73 + asn1c_defs/all-defs/ForbiddenLAs-Item.h | 50 + asn1c_defs/all-defs/ForbiddenLAs.c | 50 + asn1c_defs/all-defs/ForbiddenLAs.h | 44 + asn1c_defs/all-defs/ForbiddenTACs.c | 49 + asn1c_defs/all-defs/ForbiddenTACs.h | 42 + asn1c_defs/all-defs/ForbiddenTAs-Item.c | 73 + asn1c_defs/all-defs/ForbiddenTAs-Item.h | 50 + asn1c_defs/all-defs/ForbiddenTAs.c | 50 + asn1c_defs/all-defs/ForbiddenTAs.h | 44 + asn1c_defs/all-defs/Fourframes.c | 67 + asn1c_defs/all-defs/Fourframes.h | 44 + asn1c_defs/all-defs/FreqBandIndicator.c | 61 + asn1c_defs/all-defs/FreqBandIndicator.h | 44 + asn1c_defs/all-defs/FreqBandIndicatorPriority.c | 55 + asn1c_defs/all-defs/FreqBandIndicatorPriority.h | 52 + asn1c_defs/all-defs/FreqBandNrItem.c | 177 + asn1c_defs/all-defs/FreqBandNrItem.h | 57 + asn1c_defs/all-defs/GBR-QosInformation.c | 93 + asn1c_defs/all-defs/GBR-QosInformation.h | 51 + asn1c_defs/all-defs/GNB-ID.c | 88 + asn1c_defs/all-defs/GNB-ID.h | 56 + asn1c_defs/all-defs/GNBOverloadInformation.c | 55 + asn1c_defs/all-defs/GNBOverloadInformation.h | 52 + asn1c_defs/all-defs/GNBStatusIndication.c | 50 + asn1c_defs/all-defs/GNBStatusIndication.h | 44 + asn1c_defs/all-defs/GTP-TEI.c | 62 + asn1c_defs/all-defs/GTP-TEI.h | 44 + asn1c_defs/all-defs/GTPtunnelEndpoint.c | 73 + asn1c_defs/all-defs/GTPtunnelEndpoint.h | 50 + asn1c_defs/all-defs/GU-Group-ID.c | 73 + asn1c_defs/all-defs/GU-Group-ID.h | 50 + asn1c_defs/all-defs/GUGroupIDList.c | 50 + asn1c_defs/all-defs/GUGroupIDList.h | 41 + asn1c_defs/all-defs/GUMMEI.c | 73 + asn1c_defs/all-defs/GUMMEI.h | 48 + asn1c_defs/all-defs/GlobalENB-ID.c | 73 + asn1c_defs/all-defs/GlobalENB-ID.h | 50 + asn1c_defs/all-defs/GlobalGNB-ID.c | 73 + asn1c_defs/all-defs/GlobalGNB-ID.h | 50 + asn1c_defs/all-defs/HFN.c | 61 + asn1c_defs/all-defs/HFN.h | 44 + asn1c_defs/all-defs/HFNModified.c | 61 + asn1c_defs/all-defs/HFNModified.h | 44 + asn1c_defs/all-defs/HFNforPDCP-SNlength18.c | 61 + asn1c_defs/all-defs/HFNforPDCP-SNlength18.h | 44 + asn1c_defs/all-defs/HWLoadIndicator.c | 73 + asn1c_defs/all-defs/HWLoadIndicator.h | 49 + asn1c_defs/all-defs/HandoverCancel.c | 50 + asn1c_defs/all-defs/HandoverCancel.h | 44 + asn1c_defs/all-defs/HandoverPreparationFailure.c | 50 + asn1c_defs/all-defs/HandoverPreparationFailure.h | 44 + asn1c_defs/all-defs/HandoverReport.c | 50 + asn1c_defs/all-defs/HandoverReport.h | 44 + asn1c_defs/all-defs/HandoverReportType.c | 57 + asn1c_defs/all-defs/HandoverReportType.h | 53 + asn1c_defs/all-defs/HandoverRequest.c | 50 + asn1c_defs/all-defs/HandoverRequest.h | 44 + asn1c_defs/all-defs/HandoverRequestAcknowledge.c | 50 + asn1c_defs/all-defs/HandoverRequestAcknowledge.h | 44 + asn1c_defs/all-defs/HandoverRestrictionList.c | 106 + asn1c_defs/all-defs/HandoverRestrictionList.h | 56 + asn1c_defs/all-defs/INTEGER.c | 1735 + asn1c_defs/all-defs/INTEGER.h | 108 + asn1c_defs/all-defs/InitiatingMessage.c | 508 + asn1c_defs/all-defs/InitiatingMessage.h | 126 + .../all-defs/InitiatingNodeType-EndcConfigUpdate.c | 63 + .../all-defs/InitiatingNodeType-EndcConfigUpdate.h | 57 + .../all-defs/InitiatingNodeType-EndcX2Removal.c | 63 + .../all-defs/InitiatingNodeType-EndcX2Removal.h | 57 + .../all-defs/InitiatingNodeType-EndcX2Setup.c | 63 + .../all-defs/InitiatingNodeType-EndcX2Setup.h | 57 + ...atingNodeType-EutranrCellResourceCoordination.c | 63 + ...atingNodeType-EutranrCellResourceCoordination.h | 57 + .../all-defs/IntegrityProtectionAlgorithms.c | 67 + .../all-defs/IntegrityProtectionAlgorithms.h | 44 + asn1c_defs/all-defs/Interface-ID.c | 64 + asn1c_defs/all-defs/Interface-ID.h | 61 + asn1c_defs/all-defs/InterfaceDirection.c | 55 + asn1c_defs/all-defs/InterfaceDirection.h | 54 + asn1c_defs/all-defs/InterfaceMessage.c | 31 + asn1c_defs/all-defs/InterfaceMessage.h | 43 + asn1c_defs/all-defs/InterfaceMessageType.c | 60 + asn1c_defs/all-defs/InterfaceMessageType.h | 46 + asn1c_defs/all-defs/InterfaceProtocolIE-ID.c | 61 + asn1c_defs/all-defs/InterfaceProtocolIE-ID.h | 44 + asn1c_defs/all-defs/InterfaceProtocolIE-Item.c | 70 + asn1c_defs/all-defs/InterfaceProtocolIE-Item.h | 48 + asn1c_defs/all-defs/InterfaceProtocolIE-Test.c | 61 + asn1c_defs/all-defs/InterfaceProtocolIE-Test.h | 57 + asn1c_defs/all-defs/InterfaceProtocolIE-Value.c | 92 + asn1c_defs/all-defs/InterfaceProtocolIE-Value.h | 67 + asn1c_defs/all-defs/InterfacesToTrace.c | 67 + asn1c_defs/all-defs/InterfacesToTrace.h | 44 + asn1c_defs/all-defs/InvokeIndication.c | 57 + asn1c_defs/all-defs/InvokeIndication.h | 53 + asn1c_defs/all-defs/Key-eNodeB-Star.c | 67 + asn1c_defs/all-defs/Key-eNodeB-Star.h | 44 + asn1c_defs/all-defs/LAC.c | 62 + asn1c_defs/all-defs/LAC.h | 44 + asn1c_defs/all-defs/LCID.c | 61 + asn1c_defs/all-defs/LCID.h | 43 + asn1c_defs/all-defs/LHN-ID.c | 62 + asn1c_defs/all-defs/LHN-ID.h | 43 + asn1c_defs/all-defs/LastVisitedCell-Item.c | 84 + asn1c_defs/all-defs/LastVisitedCell-Item.h | 66 + .../all-defs/LastVisitedEUTRANCellInformation.c | 83 + .../all-defs/LastVisitedEUTRANCellInformation.h | 52 + .../all-defs/LastVisitedGERANCellInformation.c | 52 + .../all-defs/LastVisitedGERANCellInformation.h | 56 + .../all-defs/LastVisitedNGRANCellInformation.c | 31 + .../all-defs/LastVisitedNGRANCellInformation.h | 43 + .../all-defs/LastVisitedUTRANCellInformation.c | 31 + .../all-defs/LastVisitedUTRANCellInformation.h | 43 + asn1c_defs/all-defs/Limited-list.c | 104 + asn1c_defs/all-defs/Limited-list.h | 59 + asn1c_defs/all-defs/Links-to-log.c | 57 + asn1c_defs/all-defs/Links-to-log.h | 55 + .../ListofEUTRACellsinEUTRACoordinationReq.c | 50 + .../ListofEUTRACellsinEUTRACoordinationReq.h | 41 + .../ListofEUTRACellsinEUTRACoordinationResp.c | 50 + .../ListofEUTRACellsinEUTRACoordinationResp.h | 41 + .../all-defs/ListofEUTRACellsinNRCoordinationReq.c | 50 + .../all-defs/ListofEUTRACellsinNRCoordinationReq.h | 41 + .../all-defs/ListofNRCellsinNRCoordinationReq.c | 50 + .../all-defs/ListofNRCellsinNRCoordinationReq.h | 41 + .../all-defs/ListofNRCellsinNRCoordinationResp.c | 50 + .../all-defs/ListofNRCellsinNRCoordinationResp.h | 41 + asn1c_defs/all-defs/LoadIndicator.c | 59 + asn1c_defs/all-defs/LoadIndicator.h | 56 + asn1c_defs/all-defs/LoadInformation.c | 50 + asn1c_defs/all-defs/LoadInformation.h | 44 + asn1c_defs/all-defs/LocationReportingInformation.c | 73 + asn1c_defs/all-defs/LocationReportingInformation.h | 50 + asn1c_defs/all-defs/M1PeriodicReporting.c | 73 + asn1c_defs/all-defs/M1PeriodicReporting.h | 50 + asn1c_defs/all-defs/M1ReportingTrigger.c | 57 + asn1c_defs/all-defs/M1ReportingTrigger.h | 55 + asn1c_defs/all-defs/M1ThresholdEventA2.c | 63 + asn1c_defs/all-defs/M1ThresholdEventA2.h | 48 + asn1c_defs/all-defs/M3Configuration.c | 63 + asn1c_defs/all-defs/M3Configuration.h | 46 + asn1c_defs/all-defs/M3period.c | 57 + asn1c_defs/all-defs/M3period.h | 55 + asn1c_defs/all-defs/M4Configuration.c | 73 + asn1c_defs/all-defs/M4Configuration.h | 48 + asn1c_defs/all-defs/M4period.c | 61 + asn1c_defs/all-defs/M4period.h | 57 + asn1c_defs/all-defs/M5Configuration.c | 73 + asn1c_defs/all-defs/M5Configuration.h | 48 + asn1c_defs/all-defs/M5period.c | 61 + asn1c_defs/all-defs/M5period.h | 57 + asn1c_defs/all-defs/M6Configuration.c | 83 + asn1c_defs/all-defs/M6Configuration.h | 50 + asn1c_defs/all-defs/M6delay-threshold.c | 75 + asn1c_defs/all-defs/M6delay-threshold.h | 64 + asn1c_defs/all-defs/M6report-interval.c | 59 + asn1c_defs/all-defs/M6report-interval.h | 56 + asn1c_defs/all-defs/M7Configuration.c | 73 + asn1c_defs/all-defs/M7Configuration.h | 48 + asn1c_defs/all-defs/M7period.c | 61 + asn1c_defs/all-defs/M7period.h | 44 + .../all-defs/MBMS-Service-Area-Identity-List.c | 49 + .../all-defs/MBMS-Service-Area-Identity-List.h | 39 + asn1c_defs/all-defs/MBMS-Service-Area-Identity.c | 62 + asn1c_defs/all-defs/MBMS-Service-Area-Identity.h | 44 + asn1c_defs/all-defs/MBSFN-Subframe-Info.c | 83 + asn1c_defs/all-defs/MBSFN-Subframe-Info.h | 52 + asn1c_defs/all-defs/MBSFN-Subframe-Infolist.c | 50 + asn1c_defs/all-defs/MBSFN-Subframe-Infolist.h | 41 + asn1c_defs/all-defs/MDT-Activation.c | 55 + asn1c_defs/all-defs/MDT-Activation.h | 54 + asn1c_defs/all-defs/MDT-Configuration.c | 115 + asn1c_defs/all-defs/MDT-Configuration.h | 56 + asn1c_defs/all-defs/MDT-Location-Info.c | 67 + asn1c_defs/all-defs/MDT-Location-Info.h | 43 + asn1c_defs/all-defs/MDTPLMNList.c | 49 + asn1c_defs/all-defs/MDTPLMNList.h | 42 + asn1c_defs/all-defs/MME-Code.c | 62 + asn1c_defs/all-defs/MME-Code.h | 44 + asn1c_defs/all-defs/MME-Group-ID.c | 62 + asn1c_defs/all-defs/MME-Group-ID.h | 44 + asn1c_defs/all-defs/MakeBeforeBreakIndicator.c | 53 + asn1c_defs/all-defs/MakeBeforeBreakIndicator.h | 51 + asn1c_defs/all-defs/Makefile.am.libasncodec | 1583 + asn1c_defs/all-defs/ManagementBasedMDTallowed.c | 53 + asn1c_defs/all-defs/ManagementBasedMDTallowed.h | 53 + asn1c_defs/all-defs/Masked-IMEISV.c | 67 + asn1c_defs/all-defs/Masked-IMEISV.h | 43 + .../MeNBCoordinationAssistanceInformation.c | 53 + .../MeNBCoordinationAssistanceInformation.h | 51 + .../all-defs/MeNBResourceCoordinationInformation.c | 155 + .../all-defs/MeNBResourceCoordinationInformation.h | 49 + asn1c_defs/all-defs/MeNBtoSeNBContainer.c | 31 + asn1c_defs/all-defs/MeNBtoSeNBContainer.h | 43 + asn1c_defs/all-defs/MeNBtoSgNBContainer.c | 31 + asn1c_defs/all-defs/MeNBtoSgNBContainer.h | 43 + asn1c_defs/all-defs/Measurement-ID.c | 61 + asn1c_defs/all-defs/Measurement-ID.h | 43 + asn1c_defs/all-defs/MeasurementFailureCause-Item.c | 73 + asn1c_defs/all-defs/MeasurementFailureCause-Item.h | 48 + asn1c_defs/all-defs/MeasurementFailureCause-List.c | 50 + asn1c_defs/all-defs/MeasurementFailureCause-List.h | 44 + .../all-defs/MeasurementInitiationResult-Item.c | 74 + .../all-defs/MeasurementInitiationResult-Item.h | 48 + .../all-defs/MeasurementInitiationResult-List.c | 50 + .../all-defs/MeasurementInitiationResult-List.h | 41 + asn1c_defs/all-defs/MeasurementThresholdA2.c | 62 + asn1c_defs/all-defs/MeasurementThresholdA2.h | 59 + asn1c_defs/all-defs/MeasurementsToActivate.c | 67 + asn1c_defs/all-defs/MeasurementsToActivate.h | 44 + asn1c_defs/all-defs/MobilityChangeAcknowledge.c | 50 + asn1c_defs/all-defs/MobilityChangeAcknowledge.h | 44 + asn1c_defs/all-defs/MobilityChangeFailure.c | 50 + asn1c_defs/all-defs/MobilityChangeFailure.h | 44 + asn1c_defs/all-defs/MobilityChangeRequest.c | 50 + asn1c_defs/all-defs/MobilityChangeRequest.h | 44 + asn1c_defs/all-defs/MobilityInformation.c | 67 + asn1c_defs/all-defs/MobilityInformation.h | 43 + .../all-defs/MobilityParametersInformation.c | 80 + .../all-defs/MobilityParametersInformation.h | 42 + .../all-defs/MobilityParametersModificationRange.c | 120 + .../all-defs/MobilityParametersModificationRange.h | 43 + asn1c_defs/all-defs/MultibandInfoList.c | 50 + asn1c_defs/all-defs/MultibandInfoList.h | 41 + asn1c_defs/all-defs/NR-TxBW.c | 73 + asn1c_defs/all-defs/NR-TxBW.h | 50 + asn1c_defs/all-defs/NRCGI.c | 73 + asn1c_defs/all-defs/NRCGI.h | 50 + asn1c_defs/all-defs/NRCellIdentifier.c | 67 + asn1c_defs/all-defs/NRCellIdentifier.h | 44 + asn1c_defs/all-defs/NRFreqInfo.c | 188 + asn1c_defs/all-defs/NRFreqInfo.h | 59 + asn1c_defs/all-defs/NRNRB.c | 109 + asn1c_defs/all-defs/NRNRB.h | 81 + asn1c_defs/all-defs/NRNeighbour-Information.c | 210 + asn1c_defs/all-defs/NRNeighbour-Information.h | 93 + asn1c_defs/all-defs/NRPCI.c | 61 + asn1c_defs/all-defs/NRPCI.h | 44 + asn1c_defs/all-defs/NRS-NSSS-PowerOffset.c | 57 + asn1c_defs/all-defs/NRS-NSSS-PowerOffset.h | 53 + asn1c_defs/all-defs/NRSCS.c | 59 + asn1c_defs/all-defs/NRSCS.h | 56 + asn1c_defs/all-defs/NRUESecurityCapabilities.c | 73 + asn1c_defs/all-defs/NRUESecurityCapabilities.h | 50 + asn1c_defs/all-defs/NRencryptionAlgorithms.c | 67 + asn1c_defs/all-defs/NRencryptionAlgorithms.h | 44 + .../all-defs/NRintegrityProtectionAlgorithms.c | 67 + .../all-defs/NRintegrityProtectionAlgorithms.h | 44 + asn1c_defs/all-defs/NRrestrictionin5GS.c | 53 + asn1c_defs/all-defs/NRrestrictionin5GS.h | 51 + .../all-defs/NRrestrictioninEPSasSecondaryRAT.c | 53 + .../all-defs/NRrestrictioninEPSasSecondaryRAT.h | 51 + .../all-defs/NSSS-NumOccasionDifferentPrecoder.c | 57 + .../all-defs/NSSS-NumOccasionDifferentPrecoder.h | 53 + asn1c_defs/all-defs/NULL.c | 299 + asn1c_defs/all-defs/NULL.h | 45 + asn1c_defs/all-defs/NativeEnumerated.c | 367 + asn1c_defs/all-defs/NativeEnumerated.h | 45 + asn1c_defs/all-defs/NativeInteger.c | 550 + asn1c_defs/all-defs/NativeInteger.h | 46 + asn1c_defs/all-defs/Neighbour-Information.c | 124 + asn1c_defs/all-defs/Neighbour-Information.h | 63 + asn1c_defs/all-defs/NewDRBIDrequest.c | 53 + asn1c_defs/all-defs/NewDRBIDrequest.h | 51 + asn1c_defs/all-defs/NextHopChainingCount.c | 61 + asn1c_defs/all-defs/NextHopChainingCount.h | 44 + asn1c_defs/all-defs/Number-of-Antennaports.c | 57 + asn1c_defs/all-defs/Number-of-Antennaports.h | 53 + asn1c_defs/all-defs/OBJECT_IDENTIFIER.c | 656 + asn1c_defs/all-defs/OBJECT_IDENTIFIER.h | 156 + asn1c_defs/all-defs/OCTET_STRING.c | 2409 + asn1c_defs/all-defs/OCTET_STRING.h | 102 + asn1c_defs/all-defs/OPEN_TYPE.c | 509 + asn1c_defs/all-defs/OPEN_TYPE.h | 77 + .../all-defs/OffsetOfNbiotChannelNumberToEARFCN.c | 93 + .../all-defs/OffsetOfNbiotChannelNumberToEARFCN.h | 71 + asn1c_defs/all-defs/Old-ECGIs.c | 50 + asn1c_defs/all-defs/Old-ECGIs.h | 41 + asn1c_defs/all-defs/Oneframe.c | 67 + asn1c_defs/all-defs/Oneframe.h | 44 + asn1c_defs/all-defs/PA-Values.c | 67 + asn1c_defs/all-defs/PA-Values.h | 60 + asn1c_defs/all-defs/PCI.c | 61 + asn1c_defs/all-defs/PCI.h | 44 + asn1c_defs/all-defs/PDCP-SN.c | 61 + asn1c_defs/all-defs/PDCP-SN.h | 44 + asn1c_defs/all-defs/PDCP-SNExtended.c | 61 + asn1c_defs/all-defs/PDCP-SNExtended.h | 44 + asn1c_defs/all-defs/PDCP-SNlength18.c | 61 + asn1c_defs/all-defs/PDCP-SNlength18.h | 44 + asn1c_defs/all-defs/PDCPChangeIndication.c | 55 + asn1c_defs/all-defs/PDCPChangeIndication.h | 52 + asn1c_defs/all-defs/PDCPSnLength.c | 55 + asn1c_defs/all-defs/PDCPSnLength.h | 52 + asn1c_defs/all-defs/PLMN-Identity.c | 62 + asn1c_defs/all-defs/PLMN-Identity.h | 44 + asn1c_defs/all-defs/PLMNAreaBasedQMC.c | 63 + asn1c_defs/all-defs/PLMNAreaBasedQMC.h | 48 + asn1c_defs/all-defs/PLMNListforQMC.c | 49 + asn1c_defs/all-defs/PLMNListforQMC.h | 42 + asn1c_defs/all-defs/PRACH-Configuration.c | 223 + asn1c_defs/all-defs/PRACH-Configuration.h | 51 + asn1c_defs/all-defs/Packet-LossRate.c | 61 + asn1c_defs/all-defs/Packet-LossRate.h | 43 + asn1c_defs/all-defs/PartialSuccessIndicator.c | 53 + asn1c_defs/all-defs/PartialSuccessIndicator.h | 51 + asn1c_defs/all-defs/PedestrianUE.c | 55 + asn1c_defs/all-defs/PedestrianUE.h | 54 + asn1c_defs/all-defs/Port-Number.c | 62 + asn1c_defs/all-defs/Port-Number.h | 44 + asn1c_defs/all-defs/Pre-emptionCapability.c | 53 + asn1c_defs/all-defs/Pre-emptionCapability.h | 51 + asn1c_defs/all-defs/Pre-emptionVulnerability.c | 53 + asn1c_defs/all-defs/Pre-emptionVulnerability.h | 51 + asn1c_defs/all-defs/Presence.c | 55 + asn1c_defs/all-defs/Presence.h | 52 + asn1c_defs/all-defs/PrintableString.c | 130 + asn1c_defs/all-defs/PrintableString.h | 37 + asn1c_defs/all-defs/PriorityLevel.c | 61 + asn1c_defs/all-defs/PriorityLevel.h | 52 + asn1c_defs/all-defs/PrivateIE-Container.c | 50 + asn1c_defs/all-defs/PrivateIE-Container.h | 44 + asn1c_defs/all-defs/PrivateIE-Field.c | 166 + asn1c_defs/all-defs/PrivateIE-Field.h | 60 + asn1c_defs/all-defs/PrivateIE-ID.c | 92 + asn1c_defs/all-defs/PrivateIE-ID.h | 53 + asn1c_defs/all-defs/PrivateMessage.c | 50 + asn1c_defs/all-defs/PrivateMessage.h | 44 + asn1c_defs/all-defs/ProSeAuthorized.c | 73 + asn1c_defs/all-defs/ProSeAuthorized.h | 48 + asn1c_defs/all-defs/ProSeDirectCommunication.c | 55 + asn1c_defs/all-defs/ProSeDirectCommunication.h | 54 + asn1c_defs/all-defs/ProSeDirectDiscovery.c | 55 + asn1c_defs/all-defs/ProSeDirectDiscovery.h | 54 + asn1c_defs/all-defs/ProSeUEtoNetworkRelaying.c | 55 + asn1c_defs/all-defs/ProSeUEtoNetworkRelaying.h | 52 + asn1c_defs/all-defs/ProcedureCode.c | 61 + asn1c_defs/all-defs/ProcedureCode.h | 96 + .../all-defs/ProtectedEUTRAResourceIndication.c | 183 + .../all-defs/ProtectedEUTRAResourceIndication.h | 50 + .../all-defs/ProtectedFootprintTimePattern.c | 133 + .../all-defs/ProtectedFootprintTimePattern.h | 49 + asn1c_defs/all-defs/ProtectedResourceList-Item.c | 165 + asn1c_defs/all-defs/ProtectedResourceList-Item.h | 53 + asn1c_defs/all-defs/ProtectedResourceList.c | 50 + asn1c_defs/all-defs/ProtectedResourceList.h | 44 + asn1c_defs/all-defs/ProtocolExtensionContainer.c | 8930 ++++ asn1c_defs/all-defs/ProtocolExtensionContainer.h | 2486 + asn1c_defs/all-defs/ProtocolExtensionField.c | 41028 ++++++++++++++++ asn1c_defs/all-defs/ProtocolExtensionField.h | 5163 ++ asn1c_defs/all-defs/ProtocolIE-Container.c | 4810 ++ asn1c_defs/all-defs/ProtocolIE-Container.h | 1353 + asn1c_defs/all-defs/ProtocolIE-ContainerList.c | 9 + asn1c_defs/all-defs/ProtocolIE-ContainerList.h | 23 + asn1c_defs/all-defs/ProtocolIE-ContainerPair.c | 9 + asn1c_defs/all-defs/ProtocolIE-ContainerPair.h | 23 + asn1c_defs/all-defs/ProtocolIE-ContainerPairList.c | 9 + asn1c_defs/all-defs/ProtocolIE-ContainerPairList.h | 23 + asn1c_defs/all-defs/ProtocolIE-Field.c | 48241 +++++++++++++++++++ asn1c_defs/all-defs/ProtocolIE-Field.h | 4885 ++ asn1c_defs/all-defs/ProtocolIE-FieldPair.c | 9 + asn1c_defs/all-defs/ProtocolIE-FieldPair.h | 23 + asn1c_defs/all-defs/ProtocolIE-ID.c | 61 + asn1c_defs/all-defs/ProtocolIE-ID.h | 396 + asn1c_defs/all-defs/ProtocolIE-Single-Container.c | 1136 + asn1c_defs/all-defs/ProtocolIE-Single-Container.h | 667 + asn1c_defs/all-defs/QCI.c | 61 + asn1c_defs/all-defs/QCI.h | 44 + asn1c_defs/all-defs/RANfunction-Item.c | 60 + asn1c_defs/all-defs/RANfunction-Item.h | 44 + asn1c_defs/all-defs/RANfunctionDefinition.c | 31 + asn1c_defs/all-defs/RANfunctionDefinition.h | 43 + asn1c_defs/all-defs/RANfunctionID-Item.c | 50 + asn1c_defs/all-defs/RANfunctionID-Item.h | 42 + asn1c_defs/all-defs/RANfunctionID.c | 61 + asn1c_defs/all-defs/RANfunctionID.h | 44 + asn1c_defs/all-defs/RANfunctionIDcause-Item.c | 60 + asn1c_defs/all-defs/RANfunctionIDcause-Item.h | 44 + asn1c_defs/all-defs/RANfunctions-List.c | 50 + asn1c_defs/all-defs/RANfunctions-List.h | 41 + asn1c_defs/all-defs/RANfunctionsID-List.c | 50 + asn1c_defs/all-defs/RANfunctionsID-List.h | 41 + asn1c_defs/all-defs/RANfunctionsIDcause-List.c | 50 + asn1c_defs/all-defs/RANfunctionsIDcause-List.h | 41 + asn1c_defs/all-defs/RICaction-Admitted-Item.c | 50 + asn1c_defs/all-defs/RICaction-Admitted-Item.h | 42 + asn1c_defs/all-defs/RICaction-Admitted-List.c | 50 + asn1c_defs/all-defs/RICaction-Admitted-List.h | 41 + asn1c_defs/all-defs/RICaction-NotAdmitted-Item.c | 60 + asn1c_defs/all-defs/RICaction-NotAdmitted-Item.h | 44 + asn1c_defs/all-defs/RICaction-NotAdmitted-List.c | 50 + asn1c_defs/all-defs/RICaction-NotAdmitted-List.h | 41 + asn1c_defs/all-defs/RICaction-ToBeSetup-Item.c | 83 + asn1c_defs/all-defs/RICaction-ToBeSetup-Item.h | 50 + asn1c_defs/all-defs/RICactionDefinition.c | 31 + asn1c_defs/all-defs/RICactionDefinition.h | 43 + asn1c_defs/all-defs/RICactionID.c | 61 + asn1c_defs/all-defs/RICactionID.h | 44 + asn1c_defs/all-defs/RICactionType.c | 57 + asn1c_defs/all-defs/RICactionType.h | 55 + asn1c_defs/all-defs/RICactions-ToBeSetup-List.c | 50 + asn1c_defs/all-defs/RICactions-ToBeSetup-List.h | 44 + asn1c_defs/all-defs/RICcallProcessID.c | 31 + asn1c_defs/all-defs/RICcallProcessID.h | 43 + asn1c_defs/all-defs/RICcause.c | 92 + asn1c_defs/all-defs/RICcause.h | 68 + asn1c_defs/all-defs/RICcontrolAckRequest.c | 57 + asn1c_defs/all-defs/RICcontrolAckRequest.h | 53 + asn1c_defs/all-defs/RICcontrolAcknowledge.c | 50 + asn1c_defs/all-defs/RICcontrolAcknowledge.h | 44 + asn1c_defs/all-defs/RICcontrolFailure.c | 50 + asn1c_defs/all-defs/RICcontrolFailure.h | 44 + asn1c_defs/all-defs/RICcontrolHeader.c | 31 + asn1c_defs/all-defs/RICcontrolHeader.h | 43 + asn1c_defs/all-defs/RICcontrolMessage.c | 31 + asn1c_defs/all-defs/RICcontrolMessage.h | 43 + asn1c_defs/all-defs/RICcontrolRequest.c | 50 + asn1c_defs/all-defs/RICcontrolRequest.h | 44 + asn1c_defs/all-defs/RICcontrolStatus.c | 57 + asn1c_defs/all-defs/RICcontrolStatus.h | 53 + asn1c_defs/all-defs/RICeventTriggerDefinition.c | 31 + asn1c_defs/all-defs/RICeventTriggerDefinition.h | 43 + asn1c_defs/all-defs/RICindication.c | 50 + asn1c_defs/all-defs/RICindication.h | 44 + asn1c_defs/all-defs/RICindicationHeader.c | 31 + asn1c_defs/all-defs/RICindicationHeader.h | 43 + asn1c_defs/all-defs/RICindicationMessage.c | 31 + asn1c_defs/all-defs/RICindicationMessage.h | 43 + asn1c_defs/all-defs/RICindicationSN.c | 61 + asn1c_defs/all-defs/RICindicationSN.h | 43 + asn1c_defs/all-defs/RICindicationType.c | 55 + asn1c_defs/all-defs/RICindicationType.h | 52 + asn1c_defs/all-defs/RICrequestID.c | 120 + asn1c_defs/all-defs/RICrequestID.h | 43 + asn1c_defs/all-defs/RICserviceQuery.c | 50 + asn1c_defs/all-defs/RICserviceQuery.h | 44 + asn1c_defs/all-defs/RICserviceUpdate.c | 50 + asn1c_defs/all-defs/RICserviceUpdate.h | 44 + asn1c_defs/all-defs/RICserviceUpdateAcknowledge.c | 50 + asn1c_defs/all-defs/RICserviceUpdateAcknowledge.h | 44 + asn1c_defs/all-defs/RICserviceUpdateFailure.c | 50 + asn1c_defs/all-defs/RICserviceUpdateFailure.h | 44 + asn1c_defs/all-defs/RICsubscription.c | 60 + asn1c_defs/all-defs/RICsubscription.h | 44 + asn1c_defs/all-defs/RICsubscriptionDeleteFailure.c | 50 + asn1c_defs/all-defs/RICsubscriptionDeleteFailure.h | 44 + asn1c_defs/all-defs/RICsubscriptionDeleteRequest.c | 50 + asn1c_defs/all-defs/RICsubscriptionDeleteRequest.h | 44 + .../all-defs/RICsubscriptionDeleteResponse.c | 50 + .../all-defs/RICsubscriptionDeleteResponse.h | 44 + asn1c_defs/all-defs/RICsubscriptionFailure.c | 50 + asn1c_defs/all-defs/RICsubscriptionFailure.h | 44 + asn1c_defs/all-defs/RICsubscriptionRequest.c | 50 + asn1c_defs/all-defs/RICsubscriptionRequest.h | 44 + asn1c_defs/all-defs/RICsubscriptionResponse.c | 50 + asn1c_defs/all-defs/RICsubscriptionResponse.h | 44 + asn1c_defs/all-defs/RICsubsequentAction.c | 60 + asn1c_defs/all-defs/RICsubsequentAction.h | 46 + asn1c_defs/all-defs/RICsubsequentActionType.c | 55 + asn1c_defs/all-defs/RICsubsequentActionType.h | 54 + asn1c_defs/all-defs/RICtimeToWait.c | 87 + asn1c_defs/all-defs/RICtimeToWait.h | 70 + asn1c_defs/all-defs/RLC-Status.c | 63 + asn1c_defs/all-defs/RLC-Status.h | 46 + asn1c_defs/all-defs/RLCMode.c | 59 + asn1c_defs/all-defs/RLCMode.h | 56 + asn1c_defs/all-defs/RLFIndication.c | 50 + asn1c_defs/all-defs/RLFIndication.h | 44 + asn1c_defs/all-defs/RNL-Header.c | 74 + asn1c_defs/all-defs/RNL-Header.h | 48 + asn1c_defs/all-defs/RNTP-Threshold.c | 83 + asn1c_defs/all-defs/RNTP-Threshold.h | 68 + asn1c_defs/all-defs/RRC-Config-Ind.c | 55 + asn1c_defs/all-defs/RRC-Config-Ind.h | 52 + asn1c_defs/all-defs/RRC-Context.c | 31 + asn1c_defs/all-defs/RRC-Context.h | 43 + asn1c_defs/all-defs/RRCConnReestabIndicator.c | 57 + asn1c_defs/all-defs/RRCConnReestabIndicator.h | 53 + asn1c_defs/all-defs/RRCConnSetupIndicator.c | 53 + asn1c_defs/all-defs/RRCConnSetupIndicator.h | 51 + asn1c_defs/all-defs/RRCContainer.c | 31 + asn1c_defs/all-defs/RRCContainer.h | 43 + asn1c_defs/all-defs/RRCTransfer.c | 50 + asn1c_defs/all-defs/RRCTransfer.h | 44 + asn1c_defs/all-defs/RSRPMRList.c | 104 + asn1c_defs/all-defs/RSRPMRList.h | 56 + asn1c_defs/all-defs/RSRPMeasurementResult.c | 144 + asn1c_defs/all-defs/RSRPMeasurementResult.h | 61 + asn1c_defs/all-defs/RadioResourceStatus.c | 113 + asn1c_defs/all-defs/RadioResourceStatus.h | 58 + asn1c_defs/all-defs/RadioframeAllocationOffset.c | 61 + asn1c_defs/all-defs/RadioframeAllocationOffset.h | 44 + asn1c_defs/all-defs/RadioframeAllocationPeriod.c | 63 + asn1c_defs/all-defs/RadioframeAllocationPeriod.h | 58 + .../all-defs/ReceiveStatusOfULPDCPSDUsExtended.c | 67 + .../all-defs/ReceiveStatusOfULPDCPSDUsExtended.h | 43 + .../ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.c | 67 + .../ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.h | 43 + asn1c_defs/all-defs/ReceiveStatusofULPDCPSDUs.c | 67 + asn1c_defs/all-defs/ReceiveStatusofULPDCPSDUs.h | 44 + asn1c_defs/all-defs/Reestablishment-Indication.c | 53 + asn1c_defs/all-defs/Reestablishment-Indication.h | 53 + asn1c_defs/all-defs/Registration-Request.c | 59 + asn1c_defs/all-defs/Registration-Request.h | 54 + asn1c_defs/all-defs/RelativeNarrowbandTxPower.c | 249 + asn1c_defs/all-defs/RelativeNarrowbandTxPower.h | 66 + asn1c_defs/all-defs/ReplacingCellsList-Item.c | 50 + asn1c_defs/all-defs/ReplacingCellsList-Item.h | 44 + asn1c_defs/all-defs/ReplacingCellsList.c | 50 + asn1c_defs/all-defs/ReplacingCellsList.h | 44 + asn1c_defs/all-defs/ReportAmountMDT.c | 65 + asn1c_defs/all-defs/ReportAmountMDT.h | 57 + asn1c_defs/all-defs/ReportArea.c | 53 + asn1c_defs/all-defs/ReportArea.h | 53 + asn1c_defs/all-defs/ReportCharacteristics.c | 67 + asn1c_defs/all-defs/ReportCharacteristics.h | 44 + asn1c_defs/all-defs/ReportIntervalMDT.c | 75 + asn1c_defs/all-defs/ReportIntervalMDT.h | 62 + asn1c_defs/all-defs/ReportingPeriodicity.c | 59 + asn1c_defs/all-defs/ReportingPeriodicity.h | 54 + asn1c_defs/all-defs/ReportingPeriodicityCSIR.c | 61 + asn1c_defs/all-defs/ReportingPeriodicityCSIR.h | 55 + asn1c_defs/all-defs/ReportingPeriodicityRSRPMR.c | 59 + asn1c_defs/all-defs/ReportingPeriodicityRSRPMR.h | 54 + asn1c_defs/all-defs/ReservedSubframePattern.c | 149 + asn1c_defs/all-defs/ReservedSubframePattern.h | 52 + asn1c_defs/all-defs/ResetRequest.c | 50 + asn1c_defs/all-defs/ResetRequest.h | 44 + asn1c_defs/all-defs/ResetResponse.c | 50 + asn1c_defs/all-defs/ResetResponse.h | 44 + asn1c_defs/all-defs/ResourceStatusFailure.c | 50 + asn1c_defs/all-defs/ResourceStatusFailure.h | 44 + asn1c_defs/all-defs/ResourceStatusRequest.c | 50 + asn1c_defs/all-defs/ResourceStatusRequest.h | 44 + asn1c_defs/all-defs/ResourceStatusResponse.c | 50 + asn1c_defs/all-defs/ResourceStatusResponse.h | 44 + asn1c_defs/all-defs/ResourceStatusUpdate.c | 50 + asn1c_defs/all-defs/ResourceStatusUpdate.h | 44 + asn1c_defs/all-defs/ResourceType.c | 57 + asn1c_defs/all-defs/ResourceType.h | 55 + .../all-defs/RespondingNodeType-EndcConfigUpdate.c | 63 + .../all-defs/RespondingNodeType-EndcConfigUpdate.h | 57 + .../all-defs/RespondingNodeType-EndcX2Removal.c | 63 + .../all-defs/RespondingNodeType-EndcX2Removal.h | 57 + .../all-defs/RespondingNodeType-EndcX2Setup.c | 63 + .../all-defs/RespondingNodeType-EndcX2Setup.h | 57 + ...ndingNodeType-EutranrCellResourceCoordination.c | 63 + ...ndingNodeType-EutranrCellResourceCoordination.h | 57 + ...nseInformationSeNBReconfComp-RejectByMeNBItem.c | 73 + ...nseInformationSeNBReconfComp-RejectByMeNBItem.h | 50 + ...ResponseInformationSeNBReconfComp-SuccessItem.c | 63 + ...ResponseInformationSeNBReconfComp-SuccessItem.h | 48 + .../all-defs/ResponseInformationSeNBReconfComp.c | 64 + .../all-defs/ResponseInformationSeNBReconfComp.h | 58 + ...nseInformationSgNBReconfComp-RejectByMeNBItem.c | 63 + ...nseInformationSgNBReconfComp-RejectByMeNBItem.h | 48 + ...ResponseInformationSgNBReconfComp-SuccessItem.c | 63 + ...ResponseInformationSgNBReconfComp-SuccessItem.h | 48 + .../all-defs/ResponseInformationSgNBReconfComp.c | 64 + .../all-defs/ResponseInformationSgNBReconfComp.h | 58 + asn1c_defs/all-defs/ResumeID.c | 134 + asn1c_defs/all-defs/ResumeID.h | 55 + asn1c_defs/all-defs/RetrieveUEContextFailure.c | 50 + asn1c_defs/all-defs/RetrieveUEContextFailure.h | 44 + asn1c_defs/all-defs/RetrieveUEContextRequest.c | 50 + asn1c_defs/all-defs/RetrieveUEContextRequest.h | 44 + asn1c_defs/all-defs/RetrieveUEContextResponse.c | 50 + asn1c_defs/all-defs/RetrieveUEContextResponse.h | 44 + asn1c_defs/all-defs/S1TNLLoadIndicator.c | 73 + asn1c_defs/all-defs/S1TNLLoadIndicator.h | 49 + asn1c_defs/all-defs/SCGChangeIndication.c | 57 + asn1c_defs/all-defs/SCGChangeIndication.h | 53 + asn1c_defs/all-defs/SCGConfigurationQuery.c | 53 + asn1c_defs/all-defs/SCGConfigurationQuery.h | 51 + asn1c_defs/all-defs/SGNB-Addition-Trigger-Ind.c | 57 + asn1c_defs/all-defs/SGNB-Addition-Trigger-Ind.h | 53 + .../all-defs/SIPTOBearerDeactivationIndication.c | 53 + .../all-defs/SIPTOBearerDeactivationIndication.h | 51 + asn1c_defs/all-defs/SNStatusTransfer.c | 50 + asn1c_defs/all-defs/SNStatusTransfer.h | 44 + asn1c_defs/all-defs/SRBType.c | 55 + asn1c_defs/all-defs/SRBType.h | 54 + asn1c_defs/all-defs/SRVCCOperationPossible.c | 53 + asn1c_defs/all-defs/SRVCCOperationPossible.h | 51 + asn1c_defs/all-defs/SULInformation.c | 103 + asn1c_defs/all-defs/SULInformation.h | 50 + asn1c_defs/all-defs/ScheduledCommunicationTime.c | 179 + asn1c_defs/all-defs/ScheduledCommunicationTime.h | 51 + asn1c_defs/all-defs/SeNBAdditionRequest.c | 50 + asn1c_defs/all-defs/SeNBAdditionRequest.h | 44 + .../all-defs/SeNBAdditionRequestAcknowledge.c | 50 + .../all-defs/SeNBAdditionRequestAcknowledge.h | 44 + asn1c_defs/all-defs/SeNBAdditionRequestReject.c | 50 + asn1c_defs/all-defs/SeNBAdditionRequestReject.h | 44 + asn1c_defs/all-defs/SeNBCounterCheckRequest.c | 50 + asn1c_defs/all-defs/SeNBCounterCheckRequest.h | 44 + asn1c_defs/all-defs/SeNBModificationConfirm.c | 50 + asn1c_defs/all-defs/SeNBModificationConfirm.h | 44 + asn1c_defs/all-defs/SeNBModificationRefuse.c | 50 + asn1c_defs/all-defs/SeNBModificationRefuse.h | 44 + asn1c_defs/all-defs/SeNBModificationRequest.c | 50 + asn1c_defs/all-defs/SeNBModificationRequest.h | 44 + .../all-defs/SeNBModificationRequestAcknowledge.c | 50 + .../all-defs/SeNBModificationRequestAcknowledge.h | 44 + .../all-defs/SeNBModificationRequestReject.c | 50 + .../all-defs/SeNBModificationRequestReject.h | 44 + asn1c_defs/all-defs/SeNBModificationRequired.c | 50 + asn1c_defs/all-defs/SeNBModificationRequired.h | 44 + asn1c_defs/all-defs/SeNBReconfigurationComplete.c | 50 + asn1c_defs/all-defs/SeNBReconfigurationComplete.h | 44 + asn1c_defs/all-defs/SeNBReleaseConfirm.c | 50 + asn1c_defs/all-defs/SeNBReleaseConfirm.h | 44 + asn1c_defs/all-defs/SeNBReleaseRequest.c | 50 + asn1c_defs/all-defs/SeNBReleaseRequest.h | 44 + asn1c_defs/all-defs/SeNBReleaseRequired.c | 50 + asn1c_defs/all-defs/SeNBReleaseRequired.h | 44 + asn1c_defs/all-defs/SeNBSecurityKey.c | 67 + asn1c_defs/all-defs/SeNBSecurityKey.h | 44 + asn1c_defs/all-defs/SeNBtoMeNBContainer.c | 31 + asn1c_defs/all-defs/SeNBtoMeNBContainer.h | 43 + asn1c_defs/all-defs/SecondaryRATDataUsageReport.c | 50 + asn1c_defs/all-defs/SecondaryRATDataUsageReport.h | 44 + asn1c_defs/all-defs/SecondaryRATUsageReport-Item.c | 129 + asn1c_defs/all-defs/SecondaryRATUsageReport-Item.h | 59 + asn1c_defs/all-defs/SecondaryRATUsageReportList.c | 50 + asn1c_defs/all-defs/SecondaryRATUsageReportList.h | 41 + asn1c_defs/all-defs/ServedCell-Information.c | 103 + asn1c_defs/all-defs/ServedCell-Information.h | 56 + asn1c_defs/all-defs/ServedCells.c | 115 + asn1c_defs/all-defs/ServedCells.h | 58 + asn1c_defs/all-defs/ServedCellsToActivate-Item.c | 63 + asn1c_defs/all-defs/ServedCellsToActivate-Item.h | 48 + asn1c_defs/all-defs/ServedCellsToActivate.c | 50 + asn1c_defs/all-defs/ServedCellsToActivate.h | 41 + asn1c_defs/all-defs/ServedCellsToModify-Item.c | 84 + asn1c_defs/all-defs/ServedCellsToModify-Item.h | 52 + asn1c_defs/all-defs/ServedCellsToModify.c | 50 + asn1c_defs/all-defs/ServedCellsToModify.h | 41 + .../ServedEUTRAcellsENDCX2ManagementList.c | 115 + .../ServedEUTRAcellsENDCX2ManagementList.h | 58 + .../ServedEUTRAcellsToDeleteListENDCConfUpd.c | 50 + .../ServedEUTRAcellsToDeleteListENDCConfUpd.h | 41 + .../ServedEUTRAcellsToModifyListENDCConfUpd.c | 125 + .../ServedEUTRAcellsToModifyListENDCConfUpd.h | 60 + asn1c_defs/all-defs/ServedNRCell-Information.c | 179 + asn1c_defs/all-defs/ServedNRCell-Information.h | 84 + asn1c_defs/all-defs/ServedNRCellsToActivate-Item.c | 63 + asn1c_defs/all-defs/ServedNRCellsToActivate-Item.h | 48 + asn1c_defs/all-defs/ServedNRCellsToActivate.c | 50 + asn1c_defs/all-defs/ServedNRCellsToActivate.h | 41 + asn1c_defs/all-defs/ServedNRCellsToModify-Item.c | 94 + asn1c_defs/all-defs/ServedNRCellsToModify-Item.h | 54 + .../all-defs/ServedNRcellsENDCX2ManagementList.c | 115 + .../all-defs/ServedNRcellsENDCX2ManagementList.h | 58 + .../ServedNRcellsToDeleteENDCConfUpdList.c | 50 + .../ServedNRcellsToDeleteENDCConfUpdList.h | 41 + .../ServedNRcellsToModifyENDCConfUpdList.c | 50 + .../ServedNRcellsToModifyENDCConfUpdList.h | 41 + asn1c_defs/all-defs/ServiceType.c | 55 + asn1c_defs/all-defs/ServiceType.h | 52 + asn1c_defs/all-defs/SgNB-UE-X2AP-ID.c | 57 + asn1c_defs/all-defs/SgNB-UE-X2AP-ID.h | 45 + asn1c_defs/all-defs/SgNBActivityNotification.c | 50 + asn1c_defs/all-defs/SgNBActivityNotification.h | 44 + asn1c_defs/all-defs/SgNBAdditionRequest.c | 50 + asn1c_defs/all-defs/SgNBAdditionRequest.h | 44 + .../all-defs/SgNBAdditionRequestAcknowledge.c | 50 + .../all-defs/SgNBAdditionRequestAcknowledge.h | 44 + asn1c_defs/all-defs/SgNBAdditionRequestReject.c | 50 + asn1c_defs/all-defs/SgNBAdditionRequestReject.h | 44 + asn1c_defs/all-defs/SgNBChangeConfirm.c | 50 + asn1c_defs/all-defs/SgNBChangeConfirm.h | 44 + asn1c_defs/all-defs/SgNBChangeRefuse.c | 50 + asn1c_defs/all-defs/SgNBChangeRefuse.h | 44 + asn1c_defs/all-defs/SgNBChangeRequired.c | 50 + asn1c_defs/all-defs/SgNBChangeRequired.h | 44 + .../SgNBCoordinationAssistanceInformation.c | 53 + .../SgNBCoordinationAssistanceInformation.h | 51 + asn1c_defs/all-defs/SgNBCounterCheckRequest.c | 50 + asn1c_defs/all-defs/SgNBCounterCheckRequest.h | 44 + asn1c_defs/all-defs/SgNBModificationConfirm.c | 50 + asn1c_defs/all-defs/SgNBModificationConfirm.h | 44 + asn1c_defs/all-defs/SgNBModificationRefuse.c | 50 + asn1c_defs/all-defs/SgNBModificationRefuse.h | 44 + asn1c_defs/all-defs/SgNBModificationRequest.c | 50 + asn1c_defs/all-defs/SgNBModificationRequest.h | 44 + .../all-defs/SgNBModificationRequestAcknowledge.c | 50 + .../all-defs/SgNBModificationRequestAcknowledge.h | 44 + .../all-defs/SgNBModificationRequestReject.c | 50 + .../all-defs/SgNBModificationRequestReject.h | 44 + asn1c_defs/all-defs/SgNBModificationRequired.c | 50 + asn1c_defs/all-defs/SgNBModificationRequired.h | 44 + asn1c_defs/all-defs/SgNBReconfigurationComplete.c | 50 + asn1c_defs/all-defs/SgNBReconfigurationComplete.h | 44 + asn1c_defs/all-defs/SgNBReleaseConfirm.c | 50 + asn1c_defs/all-defs/SgNBReleaseConfirm.h | 44 + asn1c_defs/all-defs/SgNBReleaseRequest.c | 50 + asn1c_defs/all-defs/SgNBReleaseRequest.h | 44 + .../all-defs/SgNBReleaseRequestAcknowledge.c | 50 + .../all-defs/SgNBReleaseRequestAcknowledge.h | 44 + asn1c_defs/all-defs/SgNBReleaseRequestReject.c | 50 + asn1c_defs/all-defs/SgNBReleaseRequestReject.h | 44 + asn1c_defs/all-defs/SgNBReleaseRequired.c | 50 + asn1c_defs/all-defs/SgNBReleaseRequired.h | 44 + .../all-defs/SgNBResourceCoordinationInformation.c | 155 + .../all-defs/SgNBResourceCoordinationInformation.h | 49 + asn1c_defs/all-defs/SgNBSecurityKey.c | 67 + asn1c_defs/all-defs/SgNBSecurityKey.h | 44 + asn1c_defs/all-defs/SgNBtoMeNBContainer.c | 31 + asn1c_defs/all-defs/SgNBtoMeNBContainer.h | 43 + asn1c_defs/all-defs/SharedResourceType.c | 64 + asn1c_defs/all-defs/SharedResourceType.h | 61 + asn1c_defs/all-defs/ShortMAC-I.c | 67 + asn1c_defs/all-defs/ShortMAC-I.h | 43 + .../SourceOfUEActivityBehaviourInformation.c | 55 + .../SourceOfUEActivityBehaviourInformation.h | 54 + asn1c_defs/all-defs/SpecialSubframe-Info.c | 83 + asn1c_defs/all-defs/SpecialSubframe-Info.h | 52 + asn1c_defs/all-defs/SpecialSubframePatterns.c | 69 + asn1c_defs/all-defs/SpecialSubframePatterns.h | 61 + asn1c_defs/all-defs/SpectrumSharingGroupID.c | 61 + asn1c_defs/all-defs/SpectrumSharingGroupID.h | 43 + asn1c_defs/all-defs/SplitSRB.c | 84 + asn1c_defs/all-defs/SplitSRB.h | 50 + asn1c_defs/all-defs/SplitSRBs.c | 57 + asn1c_defs/all-defs/SplitSRBs.h | 53 + asn1c_defs/all-defs/Style-ID.c | 31 + asn1c_defs/all-defs/Style-ID.h | 43 + asn1c_defs/all-defs/SubbandCQI.c | 74 + asn1c_defs/all-defs/SubbandCQI.h | 50 + asn1c_defs/all-defs/SubbandCQICodeword0.c | 162 + asn1c_defs/all-defs/SubbandCQICodeword0.h | 60 + asn1c_defs/all-defs/SubbandCQICodeword1.c | 202 + asn1c_defs/all-defs/SubbandCQICodeword1.h | 62 + asn1c_defs/all-defs/SubbandCQIItem.c | 103 + asn1c_defs/all-defs/SubbandCQIItem.h | 50 + asn1c_defs/all-defs/SubbandCQIList.c | 50 + asn1c_defs/all-defs/SubbandCQIList.h | 44 + asn1c_defs/all-defs/SubbandSize.c | 61 + asn1c_defs/all-defs/SubbandSize.h | 57 + asn1c_defs/all-defs/SubframeAllocation.c | 62 + asn1c_defs/all-defs/SubframeAllocation.h | 59 + asn1c_defs/all-defs/SubframeAssignment.c | 65 + asn1c_defs/all-defs/SubframeAssignment.h | 59 + asn1c_defs/all-defs/SubframeType.c | 55 + asn1c_defs/all-defs/SubframeType.h | 54 + asn1c_defs/all-defs/SubscriberProfileIDforRFP.c | 61 + asn1c_defs/all-defs/SubscriberProfileIDforRFP.h | 44 + .../Subscription-Based-UE-DifferentiationInfo.c | 340 + .../Subscription-Based-UE-DifferentiationInfo.h | 89 + asn1c_defs/all-defs/SuccessfulOutcome.c | 448 + asn1c_defs/all-defs/SuccessfulOutcome.h | 114 + asn1c_defs/all-defs/SupportedSULFreqBandItem.c | 93 + asn1c_defs/all-defs/SupportedSULFreqBandItem.h | 48 + asn1c_defs/all-defs/TABasedMDT.c | 63 + asn1c_defs/all-defs/TABasedMDT.h | 48 + asn1c_defs/all-defs/TABasedQMC.c | 63 + asn1c_defs/all-defs/TABasedQMC.h | 48 + asn1c_defs/all-defs/TAC.c | 62 + asn1c_defs/all-defs/TAC.h | 44 + asn1c_defs/all-defs/TAI-Item.c | 73 + asn1c_defs/all-defs/TAI-Item.h | 50 + asn1c_defs/all-defs/TAIBasedMDT.c | 63 + asn1c_defs/all-defs/TAIBasedMDT.h | 48 + asn1c_defs/all-defs/TAIBasedQMC.c | 63 + asn1c_defs/all-defs/TAIBasedQMC.h | 48 + asn1c_defs/all-defs/TAIListforMDT.c | 50 + asn1c_defs/all-defs/TAIListforMDT.h | 44 + asn1c_defs/all-defs/TAIListforQMC.c | 50 + asn1c_defs/all-defs/TAIListforQMC.h | 44 + asn1c_defs/all-defs/TAListforMDT.c | 49 + asn1c_defs/all-defs/TAListforMDT.h | 42 + asn1c_defs/all-defs/TAListforQMC.c | 49 + asn1c_defs/all-defs/TAListforQMC.h | 42 + asn1c_defs/all-defs/TDD-Info.c | 93 + asn1c_defs/all-defs/TDD-Info.h | 54 + .../TDD-InfoNeighbourServedNRCell-Information.c | 63 + .../TDD-InfoNeighbourServedNRCell-Information.h | 48 + .../all-defs/TDD-InfoServedNRCell-Information.c | 73 + .../all-defs/TDD-InfoServedNRCell-Information.h | 50 + asn1c_defs/all-defs/TargetCellInUTRAN.c | 31 + asn1c_defs/all-defs/TargetCellInUTRAN.h | 43 + .../TargeteNBtoSource-eNBTransparentContainer.c | 31 + .../TargeteNBtoSource-eNBTransparentContainer.h | 43 + asn1c_defs/all-defs/Threshold-RSRP.c | 61 + asn1c_defs/all-defs/Threshold-RSRP.h | 44 + asn1c_defs/all-defs/Threshold-RSRQ.c | 61 + asn1c_defs/all-defs/Threshold-RSRQ.h | 44 + .../Time-UE-StayedInCell-EnhancedGranularity.c | 61 + .../Time-UE-StayedInCell-EnhancedGranularity.h | 43 + asn1c_defs/all-defs/Time-UE-StayedInCell.c | 61 + asn1c_defs/all-defs/Time-UE-StayedInCell.h | 44 + asn1c_defs/all-defs/TimeStamp.c | 62 + asn1c_defs/all-defs/TimeStamp.h | 44 + asn1c_defs/all-defs/TimeToWait.c | 63 + asn1c_defs/all-defs/TimeToWait.h | 56 + asn1c_defs/all-defs/TraceActivation.c | 93 + asn1c_defs/all-defs/TraceActivation.h | 52 + .../all-defs/TraceCollectionEntityIPAddress.c | 67 + .../all-defs/TraceCollectionEntityIPAddress.h | 44 + asn1c_defs/all-defs/TraceDepth.c | 63 + asn1c_defs/all-defs/TraceDepth.h | 58 + asn1c_defs/all-defs/Transmission-Bandwidth.c | 65 + asn1c_defs/all-defs/Transmission-Bandwidth.h | 59 + asn1c_defs/all-defs/TransportLayerAddress.c | 67 + asn1c_defs/all-defs/TransportLayerAddress.h | 44 + asn1c_defs/all-defs/TriggeringMessage.c | 55 + asn1c_defs/all-defs/TriggeringMessage.h | 52 + asn1c_defs/all-defs/TunnelInformation.c | 73 + asn1c_defs/all-defs/TunnelInformation.h | 48 + asn1c_defs/all-defs/TypeOfError.c | 55 + asn1c_defs/all-defs/TypeOfError.h | 54 + asn1c_defs/all-defs/TypeOfMessage.c | 57 + asn1c_defs/all-defs/TypeOfMessage.h | 53 + .../all-defs/UE-ContextInformation-SgNBModReq.c | 118 + .../all-defs/UE-ContextInformation-SgNBModReq.h | 56 + asn1c_defs/all-defs/UE-ContextInformation.c | 145 + asn1c_defs/all-defs/UE-ContextInformation.h | 62 + .../all-defs/UE-ContextInformationRetrieve.c | 166 + .../all-defs/UE-ContextInformationRetrieve.h | 66 + .../all-defs/UE-ContextInformationSeNBModReq.c | 118 + .../all-defs/UE-ContextInformationSeNBModReq.h | 56 + asn1c_defs/all-defs/UE-ContextKeptIndicator.c | 53 + asn1c_defs/all-defs/UE-ContextKeptIndicator.h | 51 + asn1c_defs/all-defs/UE-ContextReferenceAtSeNB.c | 83 + asn1c_defs/all-defs/UE-ContextReferenceAtSeNB.h | 50 + asn1c_defs/all-defs/UE-ContextReferenceAtSgNB.c | 73 + asn1c_defs/all-defs/UE-ContextReferenceAtSgNB.h | 48 + asn1c_defs/all-defs/UE-ContextReferenceAtWT.c | 73 + asn1c_defs/all-defs/UE-ContextReferenceAtWT.h | 48 + asn1c_defs/all-defs/UE-HistoryInformation.c | 50 + asn1c_defs/all-defs/UE-HistoryInformation.h | 41 + .../all-defs/UE-HistoryInformationFromTheUE.c | 31 + .../all-defs/UE-HistoryInformationFromTheUE.h | 43 + .../UE-RLF-Report-Container-for-extended-bands.c | 31 + .../UE-RLF-Report-Container-for-extended-bands.h | 43 + asn1c_defs/all-defs/UE-RLF-Report-Container.c | 31 + asn1c_defs/all-defs/UE-RLF-Report-Container.h | 43 + asn1c_defs/all-defs/UE-S1AP-ID.c | 57 + asn1c_defs/all-defs/UE-S1AP-ID.h | 45 + asn1c_defs/all-defs/UE-X2AP-ID-Extension.c | 61 + asn1c_defs/all-defs/UE-X2AP-ID-Extension.h | 44 + asn1c_defs/all-defs/UE-X2AP-ID.c | 61 + asn1c_defs/all-defs/UE-X2AP-ID.h | 44 + asn1c_defs/all-defs/UEAggregateMaximumBitRate.c | 73 + asn1c_defs/all-defs/UEAggregateMaximumBitRate.h | 49 + asn1c_defs/all-defs/UEAppLayerMeasConfig.c | 104 + asn1c_defs/all-defs/UEAppLayerMeasConfig.h | 48 + asn1c_defs/all-defs/UEContextRelease.c | 50 + asn1c_defs/all-defs/UEContextRelease.h | 44 + asn1c_defs/all-defs/UEID.c | 67 + asn1c_defs/all-defs/UEID.h | 44 + asn1c_defs/all-defs/UENRMeasurement.c | 63 + asn1c_defs/all-defs/UENRMeasurement.h | 46 + asn1c_defs/all-defs/UESecurityCapabilities.c | 73 + asn1c_defs/all-defs/UESecurityCapabilities.h | 50 + .../all-defs/UESidelinkAggregateMaximumBitRate.c | 63 + .../all-defs/UESidelinkAggregateMaximumBitRate.h | 46 + asn1c_defs/all-defs/UEsToBeResetList-Item.c | 83 + asn1c_defs/all-defs/UEsToBeResetList-Item.h | 52 + asn1c_defs/all-defs/UEsToBeResetList.c | 50 + asn1c_defs/all-defs/UEsToBeResetList.h | 41 + asn1c_defs/all-defs/UL-GBR-PRB-usage.c | 61 + asn1c_defs/all-defs/UL-GBR-PRB-usage.h | 44 + .../all-defs/UL-HighInterferenceIndication.c | 67 + .../all-defs/UL-HighInterferenceIndication.h | 44 + .../UL-HighInterferenceIndicationInfo-Item.c | 73 + .../UL-HighInterferenceIndicationInfo-Item.h | 50 + .../all-defs/UL-HighInterferenceIndicationInfo.c | 50 + .../all-defs/UL-HighInterferenceIndicationInfo.h | 44 + .../UL-InterferenceOverloadIndication-Item.c | 57 + .../UL-InterferenceOverloadIndication-Item.h | 55 + .../all-defs/UL-InterferenceOverloadIndication.c | 49 + .../all-defs/UL-InterferenceOverloadIndication.h | 42 + asn1c_defs/all-defs/UL-Total-PRB-usage.c | 61 + asn1c_defs/all-defs/UL-Total-PRB-usage.h | 44 + asn1c_defs/all-defs/UL-UE-Configuration.c | 57 + asn1c_defs/all-defs/UL-UE-Configuration.h | 55 + asn1c_defs/all-defs/UL-non-GBR-PRB-usage.c | 61 + asn1c_defs/all-defs/UL-non-GBR-PRB-usage.h | 44 + .../all-defs/UL-scheduling-PDCCH-CCE-usage.c | 61 + .../all-defs/UL-scheduling-PDCCH-CCE-usage.h | 43 + asn1c_defs/all-defs/ULConfiguration.c | 63 + asn1c_defs/all-defs/ULConfiguration.h | 48 + asn1c_defs/all-defs/ULOnlySharing.c | 63 + asn1c_defs/all-defs/ULOnlySharing.h | 48 + .../all-defs/ULResourceBitmapULandDLSharing.c | 67 + .../all-defs/ULResourceBitmapULandDLSharing.h | 44 + asn1c_defs/all-defs/ULResourcesULandDLSharing.c | 62 + asn1c_defs/all-defs/ULResourcesULandDLSharing.h | 59 + asn1c_defs/all-defs/ULandDLSharing.c | 73 + asn1c_defs/all-defs/ULandDLSharing.h | 50 + asn1c_defs/all-defs/UnsuccessfulOutcome.c | 438 + asn1c_defs/all-defs/UnsuccessfulOutcome.h | 112 + asn1c_defs/all-defs/UsableABSInformation.c | 64 + asn1c_defs/all-defs/UsableABSInformation.h | 61 + asn1c_defs/all-defs/UsableABSInformationFDD.c | 99 + asn1c_defs/all-defs/UsableABSInformationFDD.h | 48 + asn1c_defs/all-defs/UsableABSInformationTDD.c | 99 + asn1c_defs/all-defs/UsableABSInformationTDD.h | 48 + .../all-defs/UserPlaneTrafficActivityReport.c | 55 + .../all-defs/UserPlaneTrafficActivityReport.h | 54 + asn1c_defs/all-defs/V2XServicesAuthorized.c | 73 + asn1c_defs/all-defs/V2XServicesAuthorized.h | 48 + asn1c_defs/all-defs/VehicleUE.c | 55 + asn1c_defs/all-defs/VehicleUE.h | 54 + asn1c_defs/all-defs/WLANMeasConfig.c | 53 + asn1c_defs/all-defs/WLANMeasConfig.h | 53 + asn1c_defs/all-defs/WLANMeasConfigNameList.c | 49 + asn1c_defs/all-defs/WLANMeasConfigNameList.h | 42 + asn1c_defs/all-defs/WLANMeasurementConfiguration.c | 186 + asn1c_defs/all-defs/WLANMeasurementConfiguration.h | 67 + asn1c_defs/all-defs/WLANName.c | 62 + asn1c_defs/all-defs/WLANName.h | 44 + asn1c_defs/all-defs/WT-UE-XwAP-ID.c | 62 + asn1c_defs/all-defs/WT-UE-XwAP-ID.h | 44 + asn1c_defs/all-defs/WTID-Long-Type2.c | 67 + asn1c_defs/all-defs/WTID-Long-Type2.h | 44 + asn1c_defs/all-defs/WTID-Type1.c | 96 + asn1c_defs/all-defs/WTID-Type1.h | 46 + asn1c_defs/all-defs/WTID.c | 63 + asn1c_defs/all-defs/WTID.h | 61 + asn1c_defs/all-defs/WidebandCQI.c | 104 + asn1c_defs/all-defs/WidebandCQI.h | 50 + asn1c_defs/all-defs/WidebandCQICodeword1.c | 122 + asn1c_defs/all-defs/WidebandCQICodeword1.h | 58 + asn1c_defs/all-defs/X2AP-Message.c | 31 + asn1c_defs/all-defs/X2AP-Message.h | 43 + asn1c_defs/all-defs/X2AP-PDU.c | 75 + asn1c_defs/all-defs/X2AP-PDU.h | 61 + asn1c_defs/all-defs/X2APMessageTransfer.c | 50 + asn1c_defs/all-defs/X2APMessageTransfer.h | 44 + asn1c_defs/all-defs/X2BenefitValue.c | 61 + asn1c_defs/all-defs/X2BenefitValue.h | 43 + asn1c_defs/all-defs/X2InitiatingMessage.c | 1018 + asn1c_defs/all-defs/X2InitiatingMessage.h | 242 + asn1c_defs/all-defs/X2Release.c | 50 + asn1c_defs/all-defs/X2Release.h | 44 + asn1c_defs/all-defs/X2RemovalFailure.c | 50 + asn1c_defs/all-defs/X2RemovalFailure.h | 44 + asn1c_defs/all-defs/X2RemovalRequest.c | 50 + asn1c_defs/all-defs/X2RemovalRequest.h | 44 + asn1c_defs/all-defs/X2RemovalResponse.c | 50 + asn1c_defs/all-defs/X2RemovalResponse.h | 44 + asn1c_defs/all-defs/X2SetupFailure.c | 50 + asn1c_defs/all-defs/X2SetupFailure.h | 44 + asn1c_defs/all-defs/X2SetupRequest.c | 50 + asn1c_defs/all-defs/X2SetupRequest.h | 44 + asn1c_defs/all-defs/X2SetupResponse.c | 50 + asn1c_defs/all-defs/X2SetupResponse.h | 44 + asn1c_defs/all-defs/X2SuccessfulOutcome.c | 808 + asn1c_defs/all-defs/X2SuccessfulOutcome.h | 200 + asn1c_defs/all-defs/X2UnsuccessfulOutcome.c | 758 + asn1c_defs/all-defs/X2UnsuccessfulOutcome.h | 190 + asn1c_defs/all-defs/asn_SEQUENCE_OF.c | 41 + asn1c_defs/all-defs/asn_SEQUENCE_OF.h | 52 + asn1c_defs/all-defs/asn_SET_OF.c | 88 + asn1c_defs/all-defs/asn_SET_OF.h | 72 + asn1c_defs/all-defs/asn_application.c | 481 + asn1c_defs/all-defs/asn_application.h | 171 + asn1c_defs/all-defs/asn_bit_data.c | 333 + asn1c_defs/all-defs/asn_bit_data.h | 83 + asn1c_defs/all-defs/asn_codecs.h | 108 + asn1c_defs/all-defs/asn_codecs_prim.c | 317 + asn1c_defs/all-defs/asn_codecs_prim.h | 51 + asn1c_defs/all-defs/asn_constant.h | 69 + asn1c_defs/all-defs/asn_internal.c | 48 + asn1c_defs/all-defs/asn_internal.h | 159 + asn1c_defs/all-defs/asn_ioc.h | 51 + asn1c_defs/all-defs/asn_random_fill.c | 56 + asn1c_defs/all-defs/asn_random_fill.h | 51 + asn1c_defs/all-defs/asn_system.h | 150 + asn1c_defs/all-defs/ber_decoder.c | 283 + asn1c_defs/all-defs/ber_decoder.h | 66 + asn1c_defs/all-defs/ber_tlv_length.c | 168 + asn1c_defs/all-defs/ber_tlv_length.h | 50 + asn1c_defs/all-defs/ber_tlv_tag.c | 144 + asn1c_defs/all-defs/ber_tlv_tag.h | 60 + asn1c_defs/all-defs/constr_CHOICE.c | 1511 + asn1c_defs/all-defs/constr_CHOICE.h | 80 + asn1c_defs/all-defs/constr_SEQUENCE.c | 2059 + asn1c_defs/all-defs/constr_SEQUENCE.h | 68 + asn1c_defs/all-defs/constr_SEQUENCE_OF.c | 358 + asn1c_defs/all-defs/constr_SEQUENCE_OF.h | 41 + asn1c_defs/all-defs/constr_SET_OF.c | 1441 + asn1c_defs/all-defs/constr_SET_OF.h | 49 + asn1c_defs/all-defs/constr_TYPE.c | 80 + asn1c_defs/all-defs/constr_TYPE.h | 262 + asn1c_defs/all-defs/constraints.c | 93 + asn1c_defs/all-defs/constraints.h | 62 + asn1c_defs/all-defs/converter-example.mk | 7 + asn1c_defs/all-defs/der_encoder.c | 194 + asn1c_defs/all-defs/der_encoder.h | 68 + asn1c_defs/all-defs/per_decoder.c | 185 + asn1c_defs/all-defs/per_decoder.h | 82 + asn1c_defs/all-defs/per_encoder.c | 265 + asn1c_defs/all-defs/per_encoder.h | 93 + asn1c_defs/all-defs/per_opentype.c | 533 + asn1c_defs/all-defs/per_opentype.h | 44 + asn1c_defs/all-defs/per_support.c | 489 + asn1c_defs/all-defs/per_support.h | 127 + asn1c_defs/all-defs/xer_decoder.c | 369 + asn1c_defs/all-defs/xer_decoder.h | 106 + asn1c_defs/all-defs/xer_encoder.c | 237 + asn1c_defs/all-defs/xer_encoder.h | 83 + asn1c_defs/all-defs/xer_support.c | 227 + asn1c_defs/all-defs/xer_support.h | 55 + container-tag.yaml | 2 + init/admin_xapp_config.json | 26 + init/admin_xapp_config_schema.json | 229 + init/config-file.json | 29 + init/init_script.py | 155 + init/subscriptions.json | 32 + schemas/README.md | 3 + schemas/adm-ctrl-xapp-schema.json | 98 + schemas/samples.json | 40 + schemas/ves_schema.json | 2744 ++ src/E2AP-c/e2ap_control.cc | 253 + src/E2AP-c/e2ap_control.hpp | 66 + src/E2AP-c/e2ap_control_helper.hpp | 22 + src/E2AP-c/e2ap_control_response.cc | 415 + src/E2AP-c/e2ap_control_response.hpp | 79 + src/E2AP-c/e2ap_indication.cc | 261 + src/E2AP-c/e2ap_indication.hpp | 81 + src/E2AP-c/subscription/generic_helpers.hpp | 49 + src/E2AP-c/subscription/response_helper.hpp | 181 + .../subscription/subscription_delete_request.cc | 186 + .../subscription/subscription_delete_request.hpp | 67 + .../subscription/subscription_delete_response.cc | 294 + .../subscription/subscription_delete_response.hpp | 79 + src/E2AP-c/subscription/subscription_handler.cc | 374 + src/E2AP-c/subscription/subscription_handler.hpp | 324 + src/E2AP-c/subscription/subscription_helper.hpp | 192 + src/E2AP-c/subscription/subscription_request.cc | 278 + src/E2AP-c/subscription/subscription_request.hpp | 72 + src/E2AP-c/subscription/subscription_response.cc | 562 + src/E2AP-c/subscription/subscription_response.hpp | 82 + src/E2SM/e2sm.cc | 632 + src/E2SM/e2sm.hpp | 145 + src/E2SM/e2sm_helpers.hpp | 96 + src/Makefile | 84 + src/README.md | 68 + src/X2AP/sgnb_addition_helpers.hpp | 145 + src/X2AP/sgnb_addition_request.cc | 637 + src/X2AP/sgnb_addition_request.hpp | 81 + src/X2AP/sgnb_addition_response.cc | 434 + src/X2AP/sgnb_addition_response.hpp | 88 + src/adm-ctrl-xapp.cc | 358 + src/adm-ctrl-xapp.hpp | 86 + src/curl/curl_interface.cc | 48 + src/curl/curl_interface.hpp | 21 + src/get_config.cc | 253 + src/json/json_handler.cc | 686 + src/json/json_handler.hpp | 150 + src/message_processor_class.cc | 269 + src/message_processor_class.hpp | 90 + src/plugin-interface/plugin-interface.cc | 33 + src/plugin-interface/plugin-interface.hpp | 56 + src/protector-plugin/NetworkProtector.cc | 177 + src/protector-plugin/NetworkProtector.h | 72 + src/protector-plugin/admission_policy.cc | 349 + src/protector-plugin/admission_policy.hpp | 80 + src/protector-plugin/sliding_window.cc | 141 + src/protector-plugin/sliding_window.hpp | 51 + src/run_xapp.sh | 12 + src/xapp_utils.cc | 293 + src/xapp_utils.hpp | 366 + 1636 files changed, 248625 insertions(+) create mode 100755 Dockerfile create mode 100644 README.md create mode 100644 asn1c_defs/all-defs/ABS-Status.c create mode 100644 asn1c_defs/all-defs/ABS-Status.h create mode 100644 asn1c_defs/all-defs/ABSInformation.c create mode 100644 asn1c_defs/all-defs/ABSInformation.h create mode 100644 asn1c_defs/all-defs/ABSInformationFDD.c create mode 100644 asn1c_defs/all-defs/ABSInformationFDD.h create mode 100644 asn1c_defs/all-defs/ABSInformationTDD.c create mode 100644 asn1c_defs/all-defs/ABSInformationTDD.h create mode 100644 asn1c_defs/all-defs/ANY.c create mode 100644 asn1c_defs/all-defs/ANY.h create mode 100644 asn1c_defs/all-defs/AS-SecurityInformation.c create mode 100644 asn1c_defs/all-defs/AS-SecurityInformation.h create mode 100644 asn1c_defs/all-defs/ActionParameter-ID.c create mode 100644 asn1c_defs/all-defs/ActionParameter-ID.h create mode 100644 asn1c_defs/all-defs/ActionParameter-Item.c create mode 100644 asn1c_defs/all-defs/ActionParameter-Item.h create mode 100644 asn1c_defs/all-defs/ActionParameter-Value.c create mode 100644 asn1c_defs/all-defs/ActionParameter-Value.h create mode 100644 asn1c_defs/all-defs/ActivatedCellList-Item.c create mode 100644 asn1c_defs/all-defs/ActivatedCellList-Item.h create mode 100644 asn1c_defs/all-defs/ActivatedCellList.c create mode 100644 asn1c_defs/all-defs/ActivatedCellList.h create mode 100644 asn1c_defs/all-defs/ActivatedNRCellList-Item.c create mode 100644 asn1c_defs/all-defs/ActivatedNRCellList-Item.h create mode 100644 asn1c_defs/all-defs/ActivatedNRCellList.c create mode 100644 asn1c_defs/all-defs/ActivatedNRCellList.h create mode 100644 asn1c_defs/all-defs/ActivationID.c create mode 100644 asn1c_defs/all-defs/ActivationID.h create mode 100644 asn1c_defs/all-defs/AdditionalSpecialSubframe-Info.c create mode 100644 asn1c_defs/all-defs/AdditionalSpecialSubframe-Info.h create mode 100644 asn1c_defs/all-defs/AdditionalSpecialSubframeExtension-Info.c create mode 100644 asn1c_defs/all-defs/AdditionalSpecialSubframeExtension-Info.h create mode 100644 asn1c_defs/all-defs/AdditionalSpecialSubframePatterns.c create mode 100644 asn1c_defs/all-defs/AdditionalSpecialSubframePatterns.h create mode 100644 asn1c_defs/all-defs/AdditionalSpecialSubframePatternsExtension.c create mode 100644 asn1c_defs/all-defs/AdditionalSpecialSubframePatternsExtension.h create mode 100644 asn1c_defs/all-defs/AerialUEsubscriptionInformation.c create mode 100644 asn1c_defs/all-defs/AerialUEsubscriptionInformation.h create mode 100644 asn1c_defs/all-defs/AllocationAndRetentionPriority.c create mode 100644 asn1c_defs/all-defs/AllocationAndRetentionPriority.h create mode 100644 asn1c_defs/all-defs/AreaScopeOfMDT.c create mode 100644 asn1c_defs/all-defs/AreaScopeOfMDT.h create mode 100644 asn1c_defs/all-defs/AreaScopeOfQMC.c create mode 100644 asn1c_defs/all-defs/AreaScopeOfQMC.h create mode 100644 asn1c_defs/all-defs/BIT_STRING.c create mode 100644 asn1c_defs/all-defs/BIT_STRING.h create mode 100644 asn1c_defs/all-defs/BOOLEAN.c create mode 100644 asn1c_defs/all-defs/BOOLEAN.h create mode 100644 asn1c_defs/all-defs/BandInfo.c create mode 100644 asn1c_defs/all-defs/BandInfo.h create mode 100644 asn1c_defs/all-defs/BandwidthReducedSI.c create mode 100644 asn1c_defs/all-defs/BandwidthReducedSI.h create mode 100644 asn1c_defs/all-defs/BearerType.c create mode 100644 asn1c_defs/all-defs/BearerType.h create mode 100644 asn1c_defs/all-defs/BenefitMetric.c create mode 100644 asn1c_defs/all-defs/BenefitMetric.h create mode 100644 asn1c_defs/all-defs/BitRate.c create mode 100644 asn1c_defs/all-defs/BitRate.h create mode 100644 asn1c_defs/all-defs/BluetoothMeasConfig.c create mode 100644 asn1c_defs/all-defs/BluetoothMeasConfig.h create mode 100644 asn1c_defs/all-defs/BluetoothMeasConfigNameList.c create mode 100644 asn1c_defs/all-defs/BluetoothMeasConfigNameList.h create mode 100644 asn1c_defs/all-defs/BluetoothMeasurementConfiguration.c create mode 100644 asn1c_defs/all-defs/BluetoothMeasurementConfiguration.h create mode 100644 asn1c_defs/all-defs/BluetoothName.c create mode 100644 asn1c_defs/all-defs/BluetoothName.h create mode 100644 asn1c_defs/all-defs/BroadcastPLMNs-Item.c create mode 100644 asn1c_defs/all-defs/BroadcastPLMNs-Item.h create mode 100644 asn1c_defs/all-defs/CNTypeRestrictions.c create mode 100644 asn1c_defs/all-defs/CNTypeRestrictions.h create mode 100644 asn1c_defs/all-defs/CNTypeRestrictionsItem.c create mode 100644 asn1c_defs/all-defs/CNTypeRestrictionsItem.h create mode 100644 asn1c_defs/all-defs/COUNTValueExtended.c create mode 100644 asn1c_defs/all-defs/COUNTValueExtended.h create mode 100644 asn1c_defs/all-defs/COUNTvalue.c create mode 100644 asn1c_defs/all-defs/COUNTvalue.h create mode 100644 asn1c_defs/all-defs/COUNTvaluePDCP-SNlength18.c create mode 100644 asn1c_defs/all-defs/COUNTvaluePDCP-SNlength18.h create mode 100644 asn1c_defs/all-defs/CRNTI.c create mode 100644 asn1c_defs/all-defs/CRNTI.h create mode 100644 asn1c_defs/all-defs/CSG-Id.c create mode 100644 asn1c_defs/all-defs/CSG-Id.h create mode 100644 asn1c_defs/all-defs/CSGMembershipStatus.c create mode 100644 asn1c_defs/all-defs/CSGMembershipStatus.h create mode 100644 asn1c_defs/all-defs/CSIReportList.c create mode 100644 asn1c_defs/all-defs/CSIReportList.h create mode 100644 asn1c_defs/all-defs/CSIReportPerCSIProcess.c create mode 100644 asn1c_defs/all-defs/CSIReportPerCSIProcess.h create mode 100644 asn1c_defs/all-defs/CSIReportPerCSIProcessItem.c create mode 100644 asn1c_defs/all-defs/CSIReportPerCSIProcessItem.h create mode 100644 asn1c_defs/all-defs/CallProcess-ID.c create mode 100644 asn1c_defs/all-defs/CallProcess-ID.h create mode 100644 asn1c_defs/all-defs/CapacityValue.c create mode 100644 asn1c_defs/all-defs/CapacityValue.h create mode 100644 asn1c_defs/all-defs/Cause.c create mode 100644 asn1c_defs/all-defs/Cause.h create mode 100644 asn1c_defs/all-defs/CauseMisc.c create mode 100644 asn1c_defs/all-defs/CauseMisc.h create mode 100644 asn1c_defs/all-defs/CauseProtocol.c create mode 100644 asn1c_defs/all-defs/CauseProtocol.h create mode 100644 asn1c_defs/all-defs/CauseRIC.c create mode 100644 asn1c_defs/all-defs/CauseRIC.h create mode 100644 asn1c_defs/all-defs/CauseRadioNetwork.c create mode 100644 asn1c_defs/all-defs/CauseRadioNetwork.h create mode 100644 asn1c_defs/all-defs/CauseTransport.c create mode 100644 asn1c_defs/all-defs/CauseTransport.h create mode 100644 asn1c_defs/all-defs/Cell-Size.c create mode 100644 asn1c_defs/all-defs/Cell-Size.h create mode 100644 asn1c_defs/all-defs/CellActivationFailure.c create mode 100644 asn1c_defs/all-defs/CellActivationFailure.h create mode 100644 asn1c_defs/all-defs/CellActivationRequest.c create mode 100644 asn1c_defs/all-defs/CellActivationRequest.h create mode 100644 asn1c_defs/all-defs/CellActivationResponse.c create mode 100644 asn1c_defs/all-defs/CellActivationResponse.h create mode 100644 asn1c_defs/all-defs/CellAssistanceInformation.c create mode 100644 asn1c_defs/all-defs/CellAssistanceInformation.h create mode 100644 asn1c_defs/all-defs/CellBasedMDT.c create mode 100644 asn1c_defs/all-defs/CellBasedMDT.h create mode 100644 asn1c_defs/all-defs/CellBasedQMC.c create mode 100644 asn1c_defs/all-defs/CellBasedQMC.h create mode 100644 asn1c_defs/all-defs/CellCapacityClassValue.c create mode 100644 asn1c_defs/all-defs/CellCapacityClassValue.h create mode 100644 asn1c_defs/all-defs/CellDeploymentStatusIndicator.c create mode 100644 asn1c_defs/all-defs/CellDeploymentStatusIndicator.h create mode 100644 asn1c_defs/all-defs/CellIdListforMDT.c create mode 100644 asn1c_defs/all-defs/CellIdListforMDT.h create mode 100644 asn1c_defs/all-defs/CellIdListforQMC.c create mode 100644 asn1c_defs/all-defs/CellIdListforQMC.h create mode 100644 asn1c_defs/all-defs/CellInformation-Item.c create mode 100644 asn1c_defs/all-defs/CellInformation-Item.h create mode 100644 asn1c_defs/all-defs/CellInformation-List.c create mode 100644 asn1c_defs/all-defs/CellInformation-List.h create mode 100644 asn1c_defs/all-defs/CellMeasurementResult-Item.c create mode 100644 asn1c_defs/all-defs/CellMeasurementResult-Item.h create mode 100644 asn1c_defs/all-defs/CellMeasurementResult-List.c create mode 100644 asn1c_defs/all-defs/CellMeasurementResult-List.h create mode 100644 asn1c_defs/all-defs/CellReplacingInfo.c create mode 100644 asn1c_defs/all-defs/CellReplacingInfo.h create mode 100644 asn1c_defs/all-defs/CellReportingIndicator.c create mode 100644 asn1c_defs/all-defs/CellReportingIndicator.h create mode 100644 asn1c_defs/all-defs/CellToReport-Item.c create mode 100644 asn1c_defs/all-defs/CellToReport-Item.h create mode 100644 asn1c_defs/all-defs/CellToReport-List.c create mode 100644 asn1c_defs/all-defs/CellToReport-List.h create mode 100644 asn1c_defs/all-defs/CellType.c create mode 100644 asn1c_defs/all-defs/CellType.h create mode 100644 asn1c_defs/all-defs/CoMPHypothesisSet.c create mode 100644 asn1c_defs/all-defs/CoMPHypothesisSet.h create mode 100644 asn1c_defs/all-defs/CoMPHypothesisSetItem.c create mode 100644 asn1c_defs/all-defs/CoMPHypothesisSetItem.h create mode 100644 asn1c_defs/all-defs/CoMPInformation.c create mode 100644 asn1c_defs/all-defs/CoMPInformation.h create mode 100644 asn1c_defs/all-defs/CoMPInformationItem.c create mode 100644 asn1c_defs/all-defs/CoMPInformationItem.h create mode 100644 asn1c_defs/all-defs/CoMPInformationStartTime.c create mode 100644 asn1c_defs/all-defs/CoMPInformationStartTime.h create mode 100644 asn1c_defs/all-defs/CompleteFailureCauseInformation-Item.c create mode 100644 asn1c_defs/all-defs/CompleteFailureCauseInformation-Item.h create mode 100644 asn1c_defs/all-defs/CompleteFailureCauseInformation-List.c create mode 100644 asn1c_defs/all-defs/CompleteFailureCauseInformation-List.h create mode 100644 asn1c_defs/all-defs/CompositeAvailableCapacity.c create mode 100644 asn1c_defs/all-defs/CompositeAvailableCapacity.h create mode 100644 asn1c_defs/all-defs/CompositeAvailableCapacityGroup.c create mode 100644 asn1c_defs/all-defs/CompositeAvailableCapacityGroup.h create mode 100644 asn1c_defs/all-defs/Correlation-ID.c create mode 100644 asn1c_defs/all-defs/Correlation-ID.h create mode 100644 asn1c_defs/all-defs/CoverageModification-Item.c create mode 100644 asn1c_defs/all-defs/CoverageModification-Item.h create mode 100644 asn1c_defs/all-defs/CoverageModificationList.c create mode 100644 asn1c_defs/all-defs/CoverageModificationList.h create mode 100644 asn1c_defs/all-defs/Criticality.c create mode 100644 asn1c_defs/all-defs/Criticality.h create mode 100644 asn1c_defs/all-defs/CriticalityDiagnostics-IE-List.c create mode 100644 asn1c_defs/all-defs/CriticalityDiagnostics-IE-List.h create mode 100644 asn1c_defs/all-defs/CriticalityDiagnostics.c create mode 100644 asn1c_defs/all-defs/CriticalityDiagnostics.h create mode 100644 asn1c_defs/all-defs/CyclicPrefixDL.c create mode 100644 asn1c_defs/all-defs/CyclicPrefixDL.h create mode 100644 asn1c_defs/all-defs/CyclicPrefixUL.c create mode 100644 asn1c_defs/all-defs/CyclicPrefixUL.h create mode 100644 asn1c_defs/all-defs/DL-ABS-status.c create mode 100644 asn1c_defs/all-defs/DL-ABS-status.h create mode 100644 asn1c_defs/all-defs/DL-Forwarding.c create mode 100644 asn1c_defs/all-defs/DL-Forwarding.h create mode 100644 asn1c_defs/all-defs/DL-GBR-PRB-usage.c create mode 100644 asn1c_defs/all-defs/DL-GBR-PRB-usage.h create mode 100644 asn1c_defs/all-defs/DL-Total-PRB-usage.c create mode 100644 asn1c_defs/all-defs/DL-Total-PRB-usage.h create mode 100644 asn1c_defs/all-defs/DL-non-GBR-PRB-usage.c create mode 100644 asn1c_defs/all-defs/DL-non-GBR-PRB-usage.h create mode 100644 asn1c_defs/all-defs/DL-scheduling-PDCCH-CCE-usage.c create mode 100644 asn1c_defs/all-defs/DL-scheduling-PDCCH-CCE-usage.h create mode 100644 asn1c_defs/all-defs/DLResourceBitmapULandDLSharing.c create mode 100644 asn1c_defs/all-defs/DLResourceBitmapULandDLSharing.h create mode 100644 asn1c_defs/all-defs/DLResourcesULandDLSharing.c create mode 100644 asn1c_defs/all-defs/DLResourcesULandDLSharing.h create mode 100644 asn1c_defs/all-defs/DRB-ID.c create mode 100644 asn1c_defs/all-defs/DRB-ID.h create mode 100644 asn1c_defs/all-defs/DataForwardingAddressIndication.c create mode 100644 asn1c_defs/all-defs/DataForwardingAddressIndication.h create mode 100644 asn1c_defs/all-defs/DataTrafficResourceIndication.c create mode 100644 asn1c_defs/all-defs/DataTrafficResourceIndication.h create mode 100644 asn1c_defs/all-defs/DataTrafficResources.c create mode 100644 asn1c_defs/all-defs/DataTrafficResources.h create mode 100644 asn1c_defs/all-defs/DeactivationIndication.c create mode 100644 asn1c_defs/all-defs/DeactivationIndication.h create mode 100644 asn1c_defs/all-defs/DeliveryStatus.c create mode 100644 asn1c_defs/all-defs/DeliveryStatus.h create mode 100644 asn1c_defs/all-defs/DuplicationActivation.c create mode 100644 asn1c_defs/all-defs/DuplicationActivation.h create mode 100644 asn1c_defs/all-defs/DynamicDLTransmissionInformation.c create mode 100644 asn1c_defs/all-defs/DynamicDLTransmissionInformation.h create mode 100644 asn1c_defs/all-defs/DynamicNAICSInformation.c create mode 100644 asn1c_defs/all-defs/DynamicNAICSInformation.h create mode 100644 asn1c_defs/all-defs/E-RAB-ID.c create mode 100644 asn1c_defs/all-defs/E-RAB-ID.h create mode 100644 asn1c_defs/all-defs/E-RAB-Item.c create mode 100644 asn1c_defs/all-defs/E-RAB-Item.h create mode 100644 asn1c_defs/all-defs/E-RAB-Level-QoS-Parameters.c create mode 100644 asn1c_defs/all-defs/E-RAB-Level-QoS-Parameters.h create mode 100644 asn1c_defs/all-defs/E-RAB-List.c create mode 100644 asn1c_defs/all-defs/E-RAB-List.h create mode 100644 asn1c_defs/all-defs/E-RABUsageReport-Item.c create mode 100644 asn1c_defs/all-defs/E-RABUsageReport-Item.h create mode 100644 asn1c_defs/all-defs/E-RABUsageReportList.c create mode 100644 asn1c_defs/all-defs/E-RABUsageReportList.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-Item.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-Item.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-List.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-List.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-Item.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-Item.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-List.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-List.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckItem.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckItem.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckList.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckList.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAckList.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAckList.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckItem.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckItem.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckList.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckList.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAck-Item.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAck-Item.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAckList.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAckList.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-ModAckList.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-ModAckList.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBModAckList.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBModAckList.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToReleased-ModAckItem.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToReleased-ModAckItem.h create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToReleased-SgNBModAck-Item.c create mode 100644 asn1c_defs/all-defs/E-RABs-Admitted-ToReleased-SgNBModAck-Item.h create mode 100644 asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent.c create mode 100644 asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent.h create mode 100644 asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent.c create mode 100644 asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent.h create mode 100644 asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConf-Item.c create mode 100644 asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConf-Item.h create mode 100644 asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConfList.c create mode 100644 asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConfList.h create mode 100644 asn1c_defs/all-defs/E-RABs-DataForwardingAddress-Item.c create mode 100644 asn1c_defs/all-defs/E-RABs-DataForwardingAddress-Item.h create mode 100644 asn1c_defs/all-defs/E-RABs-DataForwardingAddress-List.c create mode 100644 asn1c_defs/all-defs/E-RABs-DataForwardingAddress-List.h create mode 100644 asn1c_defs/all-defs/E-RABs-SubjectToCounterCheck-List.c create mode 100644 asn1c_defs/all-defs/E-RABs-SubjectToCounterCheck-List.h create mode 100644 asn1c_defs/all-defs/E-RABs-SubjectToCounterCheckItem.c create mode 100644 asn1c_defs/all-defs/E-RABs-SubjectToCounterCheckItem.h create mode 100644 asn1c_defs/all-defs/E-RABs-SubjectToSgNBCounterCheck-Item.c create mode 100644 asn1c_defs/all-defs/E-RABs-SubjectToSgNBCounterCheck-Item.h create mode 100644 asn1c_defs/all-defs/E-RABs-SubjectToSgNBCounterCheck-List.c create mode 100644 asn1c_defs/all-defs/E-RABs-SubjectToSgNBCounterCheck-List.h create mode 100644 asn1c_defs/all-defs/E-RABs-SubjectToStatusTransfer-Item.c create mode 100644 asn1c_defs/all-defs/E-RABs-SubjectToStatusTransfer-Item.h create mode 100644 asn1c_defs/all-defs/E-RABs-SubjectToStatusTransfer-List.c create mode 100644 asn1c_defs/all-defs/E-RABs-SubjectToStatusTransfer-List.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-Item-SCG-Bearer.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-Item-SCG-Bearer.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-Item-Split-Bearer.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-Item-Split-Bearer.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-Item.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-Item.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-List-ModReq.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-List-ModReq.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-List.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-List.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-ModReqItem-Split-Bearer.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-ModReqItem-Split-Bearer.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-ModReqItem.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-ModReqItem.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReq-Item.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReq-Item.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReqList.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReqList.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-Item.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-Item.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-List.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-List.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeModified-List-ModReq.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeModified-List-ModReq.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeModified-ModReqItem-SCG-Bearer.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeModified-ModReqItem-SCG-Bearer.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeModified-ModReqItem-Split-Bearer.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeModified-ModReqItem-Split-Bearer.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeModified-ModReqItem.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeModified-ModReqItem.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-Item.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-Item.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-List.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-List.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqd-Item.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqd-Item.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqdList.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqdList.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-List-ModReq.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-List-ModReq.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-List-RelConf.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-List-RelConf.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-List-RelReq.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-List-RelReq.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqItem-Split-Bearer.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqItem-Split-Bearer.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqItem.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqItem.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqd.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqd.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqdItem.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqdItem.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-RelConfItem-Split-Bearer.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-RelConfItem-Split-Bearer.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-RelConfItem.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-RelConfItem.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-RelReqItem-Split-Bearer.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-RelReqItem-Split-Bearer.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-RelReqItem.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-RelReqItem.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConf-Item.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConf-Item.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConfList.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConfList.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-Item.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-Item.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-List.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-List.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReqd-Item.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReqd-Item.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReqdList.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReqdList.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConf-Item.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConf-Item.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConfList.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConfList.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReq-Item.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReq-Item.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReqList.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReqList.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReqd-Item.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReqd-Item.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReqdList.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReqdList.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeSetup-Item.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeSetup-Item.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeSetup-List.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeSetup-List.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeSetup-ListRetrieve.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeSetup-ListRetrieve.h create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeSetupRetrieve-Item.c create mode 100644 asn1c_defs/all-defs/E-RABs-ToBeSetupRetrieve-Item.h create mode 100644 asn1c_defs/all-defs/E2AP-PDU.c create mode 100644 asn1c_defs/all-defs/E2AP-PDU.h create mode 100644 asn1c_defs/all-defs/E2SM-gNB-X2-actionDefinition.c create mode 100644 asn1c_defs/all-defs/E2SM-gNB-X2-actionDefinition.h create mode 100644 asn1c_defs/all-defs/E2SM-gNB-X2-callProcessID.c create mode 100644 asn1c_defs/all-defs/E2SM-gNB-X2-callProcessID.h create mode 100644 asn1c_defs/all-defs/E2SM-gNB-X2-controlHeader.c create mode 100644 asn1c_defs/all-defs/E2SM-gNB-X2-controlHeader.h create mode 100644 asn1c_defs/all-defs/E2SM-gNB-X2-controlMessage.c create mode 100644 asn1c_defs/all-defs/E2SM-gNB-X2-controlMessage.h create mode 100644 asn1c_defs/all-defs/E2SM-gNB-X2-eventTriggerDefinition.c create mode 100644 asn1c_defs/all-defs/E2SM-gNB-X2-eventTriggerDefinition.h create mode 100644 asn1c_defs/all-defs/E2SM-gNB-X2-indicationHeader.c create mode 100644 asn1c_defs/all-defs/E2SM-gNB-X2-indicationHeader.h create mode 100644 asn1c_defs/all-defs/E2SM-gNB-X2-indicationMessage.c create mode 100644 asn1c_defs/all-defs/E2SM-gNB-X2-indicationMessage.h create mode 100644 asn1c_defs/all-defs/EARFCN.c create mode 100644 asn1c_defs/all-defs/EARFCN.h create mode 100644 asn1c_defs/all-defs/EARFCNExtension.c create mode 100644 asn1c_defs/all-defs/EARFCNExtension.h create mode 100644 asn1c_defs/all-defs/ECGI.c create mode 100644 asn1c_defs/all-defs/ECGI.h create mode 100644 asn1c_defs/all-defs/EN-DC-ResourceConfiguration.c create mode 100644 asn1c_defs/all-defs/EN-DC-ResourceConfiguration.h create mode 100644 asn1c_defs/all-defs/ENB-ID.c create mode 100644 asn1c_defs/all-defs/ENB-ID.h create mode 100644 asn1c_defs/all-defs/ENBConfigurationUpdate.c create mode 100644 asn1c_defs/all-defs/ENBConfigurationUpdate.h create mode 100644 asn1c_defs/all-defs/ENBConfigurationUpdateAcknowledge.c create mode 100644 asn1c_defs/all-defs/ENBConfigurationUpdateAcknowledge.h create mode 100644 asn1c_defs/all-defs/ENBConfigurationUpdateFailure.c create mode 100644 asn1c_defs/all-defs/ENBConfigurationUpdateFailure.h create mode 100644 asn1c_defs/all-defs/ENDCCellActivationFailure.c create mode 100644 asn1c_defs/all-defs/ENDCCellActivationFailure.h create mode 100644 asn1c_defs/all-defs/ENDCCellActivationRequest.c create mode 100644 asn1c_defs/all-defs/ENDCCellActivationRequest.h create mode 100644 asn1c_defs/all-defs/ENDCCellActivationResponse.c create mode 100644 asn1c_defs/all-defs/ENDCCellActivationResponse.h create mode 100644 asn1c_defs/all-defs/ENDCConfigurationUpdate.c create mode 100644 asn1c_defs/all-defs/ENDCConfigurationUpdate.h create mode 100644 asn1c_defs/all-defs/ENDCConfigurationUpdateAcknowledge.c create mode 100644 asn1c_defs/all-defs/ENDCConfigurationUpdateAcknowledge.h create mode 100644 asn1c_defs/all-defs/ENDCConfigurationUpdateFailure.c create mode 100644 asn1c_defs/all-defs/ENDCConfigurationUpdateFailure.h create mode 100644 asn1c_defs/all-defs/ENDCPartialResetConfirm.c create mode 100644 asn1c_defs/all-defs/ENDCPartialResetConfirm.h create mode 100644 asn1c_defs/all-defs/ENDCPartialResetRequired.c create mode 100644 asn1c_defs/all-defs/ENDCPartialResetRequired.h create mode 100644 asn1c_defs/all-defs/ENDCX2RemovalFailure.c create mode 100644 asn1c_defs/all-defs/ENDCX2RemovalFailure.h create mode 100644 asn1c_defs/all-defs/ENDCX2RemovalRequest.c create mode 100644 asn1c_defs/all-defs/ENDCX2RemovalRequest.h create mode 100644 asn1c_defs/all-defs/ENDCX2RemovalResponse.c create mode 100644 asn1c_defs/all-defs/ENDCX2RemovalResponse.h create mode 100644 asn1c_defs/all-defs/ENDCX2SetupFailure.c create mode 100644 asn1c_defs/all-defs/ENDCX2SetupFailure.h create mode 100644 asn1c_defs/all-defs/ENDCX2SetupRequest.c create mode 100644 asn1c_defs/all-defs/ENDCX2SetupRequest.h create mode 100644 asn1c_defs/all-defs/ENDCX2SetupResponse.c create mode 100644 asn1c_defs/all-defs/ENDCX2SetupResponse.h create mode 100644 asn1c_defs/all-defs/EPLMNs.c create mode 100644 asn1c_defs/all-defs/EPLMNs.h create mode 100644 asn1c_defs/all-defs/ERABActivityNotifyItem.c create mode 100644 asn1c_defs/all-defs/ERABActivityNotifyItem.h create mode 100644 asn1c_defs/all-defs/ERABActivityNotifyItemList.c create mode 100644 asn1c_defs/all-defs/ERABActivityNotifyItemList.h create mode 100644 asn1c_defs/all-defs/EUTRA-Mode-Info.c create mode 100644 asn1c_defs/all-defs/EUTRA-Mode-Info.h create mode 100644 asn1c_defs/all-defs/EUTRANCellIdentifier.c create mode 100644 asn1c_defs/all-defs/EUTRANCellIdentifier.h create mode 100644 asn1c_defs/all-defs/EUTRANRCellResourceCoordinationRequest.c create mode 100644 asn1c_defs/all-defs/EUTRANRCellResourceCoordinationRequest.h create mode 100644 asn1c_defs/all-defs/EUTRANRCellResourceCoordinationResponse.c create mode 100644 asn1c_defs/all-defs/EUTRANRCellResourceCoordinationResponse.h create mode 100644 asn1c_defs/all-defs/EUTRANTraceID.c create mode 100644 asn1c_defs/all-defs/EUTRANTraceID.h create mode 100644 asn1c_defs/all-defs/EncryptionAlgorithms.c create mode 100644 asn1c_defs/all-defs/EncryptionAlgorithms.h create mode 100644 asn1c_defs/all-defs/EnhancedRNTP.c create mode 100644 asn1c_defs/all-defs/EnhancedRNTP.h create mode 100644 asn1c_defs/all-defs/EnhancedRNTPStartTime.c create mode 100644 asn1c_defs/all-defs/EnhancedRNTPStartTime.h create mode 100644 asn1c_defs/all-defs/ErrorIndication.c create mode 100644 asn1c_defs/all-defs/ErrorIndication.h create mode 100644 asn1c_defs/all-defs/EventType.c create mode 100644 asn1c_defs/all-defs/EventType.h create mode 100644 asn1c_defs/all-defs/ExpectedActivityPeriod.c create mode 100644 asn1c_defs/all-defs/ExpectedActivityPeriod.h create mode 100644 asn1c_defs/all-defs/ExpectedHOInterval.c create mode 100644 asn1c_defs/all-defs/ExpectedHOInterval.h create mode 100644 asn1c_defs/all-defs/ExpectedIdlePeriod.c create mode 100644 asn1c_defs/all-defs/ExpectedIdlePeriod.h create mode 100644 asn1c_defs/all-defs/ExpectedUEActivityBehaviour.c create mode 100644 asn1c_defs/all-defs/ExpectedUEActivityBehaviour.h create mode 100644 asn1c_defs/all-defs/ExpectedUEBehaviour.c create mode 100644 asn1c_defs/all-defs/ExpectedUEBehaviour.h create mode 100644 asn1c_defs/all-defs/ExtendedBitRate.c create mode 100644 asn1c_defs/all-defs/ExtendedBitRate.h create mode 100644 asn1c_defs/all-defs/ExtendedULInterferenceOverloadInfo.c create mode 100644 asn1c_defs/all-defs/ExtendedULInterferenceOverloadInfo.h create mode 100644 asn1c_defs/all-defs/FDD-Info.c create mode 100644 asn1c_defs/all-defs/FDD-Info.h create mode 100644 asn1c_defs/all-defs/FDD-InfoNeighbourServedNRCell-Information.c create mode 100644 asn1c_defs/all-defs/FDD-InfoNeighbourServedNRCell-Information.h create mode 100644 asn1c_defs/all-defs/FDD-InfoServedNRCell-Information.c create mode 100644 asn1c_defs/all-defs/FDD-InfoServedNRCell-Information.h create mode 100644 asn1c_defs/all-defs/FiveGS-TAC.c create mode 100644 asn1c_defs/all-defs/FiveGS-TAC.h create mode 100644 asn1c_defs/all-defs/ForbiddenInterRATs.c create mode 100644 asn1c_defs/all-defs/ForbiddenInterRATs.h create mode 100644 asn1c_defs/all-defs/ForbiddenLACs.c create mode 100644 asn1c_defs/all-defs/ForbiddenLACs.h create mode 100644 asn1c_defs/all-defs/ForbiddenLAs-Item.c create mode 100644 asn1c_defs/all-defs/ForbiddenLAs-Item.h create mode 100644 asn1c_defs/all-defs/ForbiddenLAs.c create mode 100644 asn1c_defs/all-defs/ForbiddenLAs.h create mode 100644 asn1c_defs/all-defs/ForbiddenTACs.c create mode 100644 asn1c_defs/all-defs/ForbiddenTACs.h create mode 100644 asn1c_defs/all-defs/ForbiddenTAs-Item.c create mode 100644 asn1c_defs/all-defs/ForbiddenTAs-Item.h create mode 100644 asn1c_defs/all-defs/ForbiddenTAs.c create mode 100644 asn1c_defs/all-defs/ForbiddenTAs.h create mode 100644 asn1c_defs/all-defs/Fourframes.c create mode 100644 asn1c_defs/all-defs/Fourframes.h create mode 100644 asn1c_defs/all-defs/FreqBandIndicator.c create mode 100644 asn1c_defs/all-defs/FreqBandIndicator.h create mode 100644 asn1c_defs/all-defs/FreqBandIndicatorPriority.c create mode 100644 asn1c_defs/all-defs/FreqBandIndicatorPriority.h create mode 100644 asn1c_defs/all-defs/FreqBandNrItem.c create mode 100644 asn1c_defs/all-defs/FreqBandNrItem.h create mode 100644 asn1c_defs/all-defs/GBR-QosInformation.c create mode 100644 asn1c_defs/all-defs/GBR-QosInformation.h create mode 100644 asn1c_defs/all-defs/GNB-ID.c create mode 100644 asn1c_defs/all-defs/GNB-ID.h create mode 100644 asn1c_defs/all-defs/GNBOverloadInformation.c create mode 100644 asn1c_defs/all-defs/GNBOverloadInformation.h create mode 100644 asn1c_defs/all-defs/GNBStatusIndication.c create mode 100644 asn1c_defs/all-defs/GNBStatusIndication.h create mode 100644 asn1c_defs/all-defs/GTP-TEI.c create mode 100644 asn1c_defs/all-defs/GTP-TEI.h create mode 100644 asn1c_defs/all-defs/GTPtunnelEndpoint.c create mode 100644 asn1c_defs/all-defs/GTPtunnelEndpoint.h create mode 100644 asn1c_defs/all-defs/GU-Group-ID.c create mode 100644 asn1c_defs/all-defs/GU-Group-ID.h create mode 100644 asn1c_defs/all-defs/GUGroupIDList.c create mode 100644 asn1c_defs/all-defs/GUGroupIDList.h create mode 100644 asn1c_defs/all-defs/GUMMEI.c create mode 100644 asn1c_defs/all-defs/GUMMEI.h create mode 100644 asn1c_defs/all-defs/GlobalENB-ID.c create mode 100644 asn1c_defs/all-defs/GlobalENB-ID.h create mode 100644 asn1c_defs/all-defs/GlobalGNB-ID.c create mode 100644 asn1c_defs/all-defs/GlobalGNB-ID.h create mode 100644 asn1c_defs/all-defs/HFN.c create mode 100644 asn1c_defs/all-defs/HFN.h create mode 100644 asn1c_defs/all-defs/HFNModified.c create mode 100644 asn1c_defs/all-defs/HFNModified.h create mode 100644 asn1c_defs/all-defs/HFNforPDCP-SNlength18.c create mode 100644 asn1c_defs/all-defs/HFNforPDCP-SNlength18.h create mode 100644 asn1c_defs/all-defs/HWLoadIndicator.c create mode 100644 asn1c_defs/all-defs/HWLoadIndicator.h create mode 100644 asn1c_defs/all-defs/HandoverCancel.c create mode 100644 asn1c_defs/all-defs/HandoverCancel.h create mode 100644 asn1c_defs/all-defs/HandoverPreparationFailure.c create mode 100644 asn1c_defs/all-defs/HandoverPreparationFailure.h create mode 100644 asn1c_defs/all-defs/HandoverReport.c create mode 100644 asn1c_defs/all-defs/HandoverReport.h create mode 100644 asn1c_defs/all-defs/HandoverReportType.c create mode 100644 asn1c_defs/all-defs/HandoverReportType.h create mode 100644 asn1c_defs/all-defs/HandoverRequest.c create mode 100644 asn1c_defs/all-defs/HandoverRequest.h create mode 100644 asn1c_defs/all-defs/HandoverRequestAcknowledge.c create mode 100644 asn1c_defs/all-defs/HandoverRequestAcknowledge.h create mode 100644 asn1c_defs/all-defs/HandoverRestrictionList.c create mode 100644 asn1c_defs/all-defs/HandoverRestrictionList.h create mode 100644 asn1c_defs/all-defs/INTEGER.c create mode 100644 asn1c_defs/all-defs/INTEGER.h create mode 100644 asn1c_defs/all-defs/InitiatingMessage.c create mode 100644 asn1c_defs/all-defs/InitiatingMessage.h create mode 100644 asn1c_defs/all-defs/InitiatingNodeType-EndcConfigUpdate.c create mode 100644 asn1c_defs/all-defs/InitiatingNodeType-EndcConfigUpdate.h create mode 100644 asn1c_defs/all-defs/InitiatingNodeType-EndcX2Removal.c create mode 100644 asn1c_defs/all-defs/InitiatingNodeType-EndcX2Removal.h create mode 100644 asn1c_defs/all-defs/InitiatingNodeType-EndcX2Setup.c create mode 100644 asn1c_defs/all-defs/InitiatingNodeType-EndcX2Setup.h create mode 100644 asn1c_defs/all-defs/InitiatingNodeType-EutranrCellResourceCoordination.c create mode 100644 asn1c_defs/all-defs/InitiatingNodeType-EutranrCellResourceCoordination.h create mode 100644 asn1c_defs/all-defs/IntegrityProtectionAlgorithms.c create mode 100644 asn1c_defs/all-defs/IntegrityProtectionAlgorithms.h create mode 100644 asn1c_defs/all-defs/Interface-ID.c create mode 100644 asn1c_defs/all-defs/Interface-ID.h create mode 100644 asn1c_defs/all-defs/InterfaceDirection.c create mode 100644 asn1c_defs/all-defs/InterfaceDirection.h create mode 100644 asn1c_defs/all-defs/InterfaceMessage.c create mode 100644 asn1c_defs/all-defs/InterfaceMessage.h create mode 100644 asn1c_defs/all-defs/InterfaceMessageType.c create mode 100644 asn1c_defs/all-defs/InterfaceMessageType.h create mode 100644 asn1c_defs/all-defs/InterfaceProtocolIE-ID.c create mode 100644 asn1c_defs/all-defs/InterfaceProtocolIE-ID.h create mode 100644 asn1c_defs/all-defs/InterfaceProtocolIE-Item.c create mode 100644 asn1c_defs/all-defs/InterfaceProtocolIE-Item.h create mode 100644 asn1c_defs/all-defs/InterfaceProtocolIE-Test.c create mode 100644 asn1c_defs/all-defs/InterfaceProtocolIE-Test.h create mode 100644 asn1c_defs/all-defs/InterfaceProtocolIE-Value.c create mode 100644 asn1c_defs/all-defs/InterfaceProtocolIE-Value.h create mode 100644 asn1c_defs/all-defs/InterfacesToTrace.c create mode 100644 asn1c_defs/all-defs/InterfacesToTrace.h create mode 100644 asn1c_defs/all-defs/InvokeIndication.c create mode 100644 asn1c_defs/all-defs/InvokeIndication.h create mode 100644 asn1c_defs/all-defs/Key-eNodeB-Star.c create mode 100644 asn1c_defs/all-defs/Key-eNodeB-Star.h create mode 100644 asn1c_defs/all-defs/LAC.c create mode 100644 asn1c_defs/all-defs/LAC.h create mode 100644 asn1c_defs/all-defs/LCID.c create mode 100644 asn1c_defs/all-defs/LCID.h create mode 100644 asn1c_defs/all-defs/LHN-ID.c create mode 100644 asn1c_defs/all-defs/LHN-ID.h create mode 100644 asn1c_defs/all-defs/LastVisitedCell-Item.c create mode 100644 asn1c_defs/all-defs/LastVisitedCell-Item.h create mode 100644 asn1c_defs/all-defs/LastVisitedEUTRANCellInformation.c create mode 100644 asn1c_defs/all-defs/LastVisitedEUTRANCellInformation.h create mode 100644 asn1c_defs/all-defs/LastVisitedGERANCellInformation.c create mode 100644 asn1c_defs/all-defs/LastVisitedGERANCellInformation.h create mode 100644 asn1c_defs/all-defs/LastVisitedNGRANCellInformation.c create mode 100644 asn1c_defs/all-defs/LastVisitedNGRANCellInformation.h create mode 100644 asn1c_defs/all-defs/LastVisitedUTRANCellInformation.c create mode 100644 asn1c_defs/all-defs/LastVisitedUTRANCellInformation.h create mode 100644 asn1c_defs/all-defs/Limited-list.c create mode 100644 asn1c_defs/all-defs/Limited-list.h create mode 100644 asn1c_defs/all-defs/Links-to-log.c create mode 100644 asn1c_defs/all-defs/Links-to-log.h create mode 100644 asn1c_defs/all-defs/ListofEUTRACellsinEUTRACoordinationReq.c create mode 100644 asn1c_defs/all-defs/ListofEUTRACellsinEUTRACoordinationReq.h create mode 100644 asn1c_defs/all-defs/ListofEUTRACellsinEUTRACoordinationResp.c create mode 100644 asn1c_defs/all-defs/ListofEUTRACellsinEUTRACoordinationResp.h create mode 100644 asn1c_defs/all-defs/ListofEUTRACellsinNRCoordinationReq.c create mode 100644 asn1c_defs/all-defs/ListofEUTRACellsinNRCoordinationReq.h create mode 100644 asn1c_defs/all-defs/ListofNRCellsinNRCoordinationReq.c create mode 100644 asn1c_defs/all-defs/ListofNRCellsinNRCoordinationReq.h create mode 100644 asn1c_defs/all-defs/ListofNRCellsinNRCoordinationResp.c create mode 100644 asn1c_defs/all-defs/ListofNRCellsinNRCoordinationResp.h create mode 100644 asn1c_defs/all-defs/LoadIndicator.c create mode 100644 asn1c_defs/all-defs/LoadIndicator.h create mode 100644 asn1c_defs/all-defs/LoadInformation.c create mode 100644 asn1c_defs/all-defs/LoadInformation.h create mode 100644 asn1c_defs/all-defs/LocationReportingInformation.c create mode 100644 asn1c_defs/all-defs/LocationReportingInformation.h create mode 100644 asn1c_defs/all-defs/M1PeriodicReporting.c create mode 100644 asn1c_defs/all-defs/M1PeriodicReporting.h create mode 100644 asn1c_defs/all-defs/M1ReportingTrigger.c create mode 100644 asn1c_defs/all-defs/M1ReportingTrigger.h create mode 100644 asn1c_defs/all-defs/M1ThresholdEventA2.c create mode 100644 asn1c_defs/all-defs/M1ThresholdEventA2.h create mode 100644 asn1c_defs/all-defs/M3Configuration.c create mode 100644 asn1c_defs/all-defs/M3Configuration.h create mode 100644 asn1c_defs/all-defs/M3period.c create mode 100644 asn1c_defs/all-defs/M3period.h create mode 100644 asn1c_defs/all-defs/M4Configuration.c create mode 100644 asn1c_defs/all-defs/M4Configuration.h create mode 100644 asn1c_defs/all-defs/M4period.c create mode 100644 asn1c_defs/all-defs/M4period.h create mode 100644 asn1c_defs/all-defs/M5Configuration.c create mode 100644 asn1c_defs/all-defs/M5Configuration.h create mode 100644 asn1c_defs/all-defs/M5period.c create mode 100644 asn1c_defs/all-defs/M5period.h create mode 100644 asn1c_defs/all-defs/M6Configuration.c create mode 100644 asn1c_defs/all-defs/M6Configuration.h create mode 100644 asn1c_defs/all-defs/M6delay-threshold.c create mode 100644 asn1c_defs/all-defs/M6delay-threshold.h create mode 100644 asn1c_defs/all-defs/M6report-interval.c create mode 100644 asn1c_defs/all-defs/M6report-interval.h create mode 100644 asn1c_defs/all-defs/M7Configuration.c create mode 100644 asn1c_defs/all-defs/M7Configuration.h create mode 100644 asn1c_defs/all-defs/M7period.c create mode 100644 asn1c_defs/all-defs/M7period.h create mode 100644 asn1c_defs/all-defs/MBMS-Service-Area-Identity-List.c create mode 100644 asn1c_defs/all-defs/MBMS-Service-Area-Identity-List.h create mode 100644 asn1c_defs/all-defs/MBMS-Service-Area-Identity.c create mode 100644 asn1c_defs/all-defs/MBMS-Service-Area-Identity.h create mode 100644 asn1c_defs/all-defs/MBSFN-Subframe-Info.c create mode 100644 asn1c_defs/all-defs/MBSFN-Subframe-Info.h create mode 100644 asn1c_defs/all-defs/MBSFN-Subframe-Infolist.c create mode 100644 asn1c_defs/all-defs/MBSFN-Subframe-Infolist.h create mode 100644 asn1c_defs/all-defs/MDT-Activation.c create mode 100644 asn1c_defs/all-defs/MDT-Activation.h create mode 100644 asn1c_defs/all-defs/MDT-Configuration.c create mode 100644 asn1c_defs/all-defs/MDT-Configuration.h create mode 100644 asn1c_defs/all-defs/MDT-Location-Info.c create mode 100644 asn1c_defs/all-defs/MDT-Location-Info.h create mode 100644 asn1c_defs/all-defs/MDTPLMNList.c create mode 100644 asn1c_defs/all-defs/MDTPLMNList.h create mode 100644 asn1c_defs/all-defs/MME-Code.c create mode 100644 asn1c_defs/all-defs/MME-Code.h create mode 100644 asn1c_defs/all-defs/MME-Group-ID.c create mode 100644 asn1c_defs/all-defs/MME-Group-ID.h create mode 100644 asn1c_defs/all-defs/MakeBeforeBreakIndicator.c create mode 100644 asn1c_defs/all-defs/MakeBeforeBreakIndicator.h create mode 100644 asn1c_defs/all-defs/Makefile.am.libasncodec create mode 100644 asn1c_defs/all-defs/ManagementBasedMDTallowed.c create mode 100644 asn1c_defs/all-defs/ManagementBasedMDTallowed.h create mode 100644 asn1c_defs/all-defs/Masked-IMEISV.c create mode 100644 asn1c_defs/all-defs/Masked-IMEISV.h create mode 100644 asn1c_defs/all-defs/MeNBCoordinationAssistanceInformation.c create mode 100644 asn1c_defs/all-defs/MeNBCoordinationAssistanceInformation.h create mode 100644 asn1c_defs/all-defs/MeNBResourceCoordinationInformation.c create mode 100644 asn1c_defs/all-defs/MeNBResourceCoordinationInformation.h create mode 100644 asn1c_defs/all-defs/MeNBtoSeNBContainer.c create mode 100644 asn1c_defs/all-defs/MeNBtoSeNBContainer.h create mode 100644 asn1c_defs/all-defs/MeNBtoSgNBContainer.c create mode 100644 asn1c_defs/all-defs/MeNBtoSgNBContainer.h create mode 100644 asn1c_defs/all-defs/Measurement-ID.c create mode 100644 asn1c_defs/all-defs/Measurement-ID.h create mode 100644 asn1c_defs/all-defs/MeasurementFailureCause-Item.c create mode 100644 asn1c_defs/all-defs/MeasurementFailureCause-Item.h create mode 100644 asn1c_defs/all-defs/MeasurementFailureCause-List.c create mode 100644 asn1c_defs/all-defs/MeasurementFailureCause-List.h create mode 100644 asn1c_defs/all-defs/MeasurementInitiationResult-Item.c create mode 100644 asn1c_defs/all-defs/MeasurementInitiationResult-Item.h create mode 100644 asn1c_defs/all-defs/MeasurementInitiationResult-List.c create mode 100644 asn1c_defs/all-defs/MeasurementInitiationResult-List.h create mode 100644 asn1c_defs/all-defs/MeasurementThresholdA2.c create mode 100644 asn1c_defs/all-defs/MeasurementThresholdA2.h create mode 100644 asn1c_defs/all-defs/MeasurementsToActivate.c create mode 100644 asn1c_defs/all-defs/MeasurementsToActivate.h create mode 100644 asn1c_defs/all-defs/MobilityChangeAcknowledge.c create mode 100644 asn1c_defs/all-defs/MobilityChangeAcknowledge.h create mode 100644 asn1c_defs/all-defs/MobilityChangeFailure.c create mode 100644 asn1c_defs/all-defs/MobilityChangeFailure.h create mode 100644 asn1c_defs/all-defs/MobilityChangeRequest.c create mode 100644 asn1c_defs/all-defs/MobilityChangeRequest.h create mode 100644 asn1c_defs/all-defs/MobilityInformation.c create mode 100644 asn1c_defs/all-defs/MobilityInformation.h create mode 100644 asn1c_defs/all-defs/MobilityParametersInformation.c create mode 100644 asn1c_defs/all-defs/MobilityParametersInformation.h create mode 100644 asn1c_defs/all-defs/MobilityParametersModificationRange.c create mode 100644 asn1c_defs/all-defs/MobilityParametersModificationRange.h create mode 100644 asn1c_defs/all-defs/MultibandInfoList.c create mode 100644 asn1c_defs/all-defs/MultibandInfoList.h create mode 100644 asn1c_defs/all-defs/NR-TxBW.c create mode 100644 asn1c_defs/all-defs/NR-TxBW.h create mode 100644 asn1c_defs/all-defs/NRCGI.c create mode 100644 asn1c_defs/all-defs/NRCGI.h create mode 100644 asn1c_defs/all-defs/NRCellIdentifier.c create mode 100644 asn1c_defs/all-defs/NRCellIdentifier.h create mode 100644 asn1c_defs/all-defs/NRFreqInfo.c create mode 100644 asn1c_defs/all-defs/NRFreqInfo.h create mode 100644 asn1c_defs/all-defs/NRNRB.c create mode 100644 asn1c_defs/all-defs/NRNRB.h create mode 100644 asn1c_defs/all-defs/NRNeighbour-Information.c create mode 100644 asn1c_defs/all-defs/NRNeighbour-Information.h create mode 100644 asn1c_defs/all-defs/NRPCI.c create mode 100644 asn1c_defs/all-defs/NRPCI.h create mode 100644 asn1c_defs/all-defs/NRS-NSSS-PowerOffset.c create mode 100644 asn1c_defs/all-defs/NRS-NSSS-PowerOffset.h create mode 100644 asn1c_defs/all-defs/NRSCS.c create mode 100644 asn1c_defs/all-defs/NRSCS.h create mode 100644 asn1c_defs/all-defs/NRUESecurityCapabilities.c create mode 100644 asn1c_defs/all-defs/NRUESecurityCapabilities.h create mode 100644 asn1c_defs/all-defs/NRencryptionAlgorithms.c create mode 100644 asn1c_defs/all-defs/NRencryptionAlgorithms.h create mode 100644 asn1c_defs/all-defs/NRintegrityProtectionAlgorithms.c create mode 100644 asn1c_defs/all-defs/NRintegrityProtectionAlgorithms.h create mode 100644 asn1c_defs/all-defs/NRrestrictionin5GS.c create mode 100644 asn1c_defs/all-defs/NRrestrictionin5GS.h create mode 100644 asn1c_defs/all-defs/NRrestrictioninEPSasSecondaryRAT.c create mode 100644 asn1c_defs/all-defs/NRrestrictioninEPSasSecondaryRAT.h create mode 100644 asn1c_defs/all-defs/NSSS-NumOccasionDifferentPrecoder.c create mode 100644 asn1c_defs/all-defs/NSSS-NumOccasionDifferentPrecoder.h create mode 100644 asn1c_defs/all-defs/NULL.c create mode 100644 asn1c_defs/all-defs/NULL.h create mode 100644 asn1c_defs/all-defs/NativeEnumerated.c create mode 100644 asn1c_defs/all-defs/NativeEnumerated.h create mode 100644 asn1c_defs/all-defs/NativeInteger.c create mode 100644 asn1c_defs/all-defs/NativeInteger.h create mode 100644 asn1c_defs/all-defs/Neighbour-Information.c create mode 100644 asn1c_defs/all-defs/Neighbour-Information.h create mode 100644 asn1c_defs/all-defs/NewDRBIDrequest.c create mode 100644 asn1c_defs/all-defs/NewDRBIDrequest.h create mode 100644 asn1c_defs/all-defs/NextHopChainingCount.c create mode 100644 asn1c_defs/all-defs/NextHopChainingCount.h create mode 100644 asn1c_defs/all-defs/Number-of-Antennaports.c create mode 100644 asn1c_defs/all-defs/Number-of-Antennaports.h create mode 100644 asn1c_defs/all-defs/OBJECT_IDENTIFIER.c create mode 100644 asn1c_defs/all-defs/OBJECT_IDENTIFIER.h create mode 100644 asn1c_defs/all-defs/OCTET_STRING.c create mode 100644 asn1c_defs/all-defs/OCTET_STRING.h create mode 100644 asn1c_defs/all-defs/OPEN_TYPE.c create mode 100644 asn1c_defs/all-defs/OPEN_TYPE.h create mode 100644 asn1c_defs/all-defs/OffsetOfNbiotChannelNumberToEARFCN.c create mode 100644 asn1c_defs/all-defs/OffsetOfNbiotChannelNumberToEARFCN.h create mode 100644 asn1c_defs/all-defs/Old-ECGIs.c create mode 100644 asn1c_defs/all-defs/Old-ECGIs.h create mode 100644 asn1c_defs/all-defs/Oneframe.c create mode 100644 asn1c_defs/all-defs/Oneframe.h create mode 100644 asn1c_defs/all-defs/PA-Values.c create mode 100644 asn1c_defs/all-defs/PA-Values.h create mode 100644 asn1c_defs/all-defs/PCI.c create mode 100644 asn1c_defs/all-defs/PCI.h create mode 100644 asn1c_defs/all-defs/PDCP-SN.c create mode 100644 asn1c_defs/all-defs/PDCP-SN.h create mode 100644 asn1c_defs/all-defs/PDCP-SNExtended.c create mode 100644 asn1c_defs/all-defs/PDCP-SNExtended.h create mode 100644 asn1c_defs/all-defs/PDCP-SNlength18.c create mode 100644 asn1c_defs/all-defs/PDCP-SNlength18.h create mode 100644 asn1c_defs/all-defs/PDCPChangeIndication.c create mode 100644 asn1c_defs/all-defs/PDCPChangeIndication.h create mode 100644 asn1c_defs/all-defs/PDCPSnLength.c create mode 100644 asn1c_defs/all-defs/PDCPSnLength.h create mode 100644 asn1c_defs/all-defs/PLMN-Identity.c create mode 100644 asn1c_defs/all-defs/PLMN-Identity.h create mode 100644 asn1c_defs/all-defs/PLMNAreaBasedQMC.c create mode 100644 asn1c_defs/all-defs/PLMNAreaBasedQMC.h create mode 100644 asn1c_defs/all-defs/PLMNListforQMC.c create mode 100644 asn1c_defs/all-defs/PLMNListforQMC.h create mode 100644 asn1c_defs/all-defs/PRACH-Configuration.c create mode 100644 asn1c_defs/all-defs/PRACH-Configuration.h create mode 100644 asn1c_defs/all-defs/Packet-LossRate.c create mode 100644 asn1c_defs/all-defs/Packet-LossRate.h create mode 100644 asn1c_defs/all-defs/PartialSuccessIndicator.c create mode 100644 asn1c_defs/all-defs/PartialSuccessIndicator.h create mode 100644 asn1c_defs/all-defs/PedestrianUE.c create mode 100644 asn1c_defs/all-defs/PedestrianUE.h create mode 100644 asn1c_defs/all-defs/Port-Number.c create mode 100644 asn1c_defs/all-defs/Port-Number.h create mode 100644 asn1c_defs/all-defs/Pre-emptionCapability.c create mode 100644 asn1c_defs/all-defs/Pre-emptionCapability.h create mode 100644 asn1c_defs/all-defs/Pre-emptionVulnerability.c create mode 100644 asn1c_defs/all-defs/Pre-emptionVulnerability.h create mode 100644 asn1c_defs/all-defs/Presence.c create mode 100644 asn1c_defs/all-defs/Presence.h create mode 100644 asn1c_defs/all-defs/PrintableString.c create mode 100644 asn1c_defs/all-defs/PrintableString.h create mode 100644 asn1c_defs/all-defs/PriorityLevel.c create mode 100644 asn1c_defs/all-defs/PriorityLevel.h create mode 100644 asn1c_defs/all-defs/PrivateIE-Container.c create mode 100644 asn1c_defs/all-defs/PrivateIE-Container.h create mode 100644 asn1c_defs/all-defs/PrivateIE-Field.c create mode 100644 asn1c_defs/all-defs/PrivateIE-Field.h create mode 100644 asn1c_defs/all-defs/PrivateIE-ID.c create mode 100644 asn1c_defs/all-defs/PrivateIE-ID.h create mode 100644 asn1c_defs/all-defs/PrivateMessage.c create mode 100644 asn1c_defs/all-defs/PrivateMessage.h create mode 100644 asn1c_defs/all-defs/ProSeAuthorized.c create mode 100644 asn1c_defs/all-defs/ProSeAuthorized.h create mode 100644 asn1c_defs/all-defs/ProSeDirectCommunication.c create mode 100644 asn1c_defs/all-defs/ProSeDirectCommunication.h create mode 100644 asn1c_defs/all-defs/ProSeDirectDiscovery.c create mode 100644 asn1c_defs/all-defs/ProSeDirectDiscovery.h create mode 100644 asn1c_defs/all-defs/ProSeUEtoNetworkRelaying.c create mode 100644 asn1c_defs/all-defs/ProSeUEtoNetworkRelaying.h create mode 100644 asn1c_defs/all-defs/ProcedureCode.c create mode 100644 asn1c_defs/all-defs/ProcedureCode.h create mode 100644 asn1c_defs/all-defs/ProtectedEUTRAResourceIndication.c create mode 100644 asn1c_defs/all-defs/ProtectedEUTRAResourceIndication.h create mode 100644 asn1c_defs/all-defs/ProtectedFootprintTimePattern.c create mode 100644 asn1c_defs/all-defs/ProtectedFootprintTimePattern.h create mode 100644 asn1c_defs/all-defs/ProtectedResourceList-Item.c create mode 100644 asn1c_defs/all-defs/ProtectedResourceList-Item.h create mode 100644 asn1c_defs/all-defs/ProtectedResourceList.c create mode 100644 asn1c_defs/all-defs/ProtectedResourceList.h create mode 100644 asn1c_defs/all-defs/ProtocolExtensionContainer.c create mode 100644 asn1c_defs/all-defs/ProtocolExtensionContainer.h create mode 100644 asn1c_defs/all-defs/ProtocolExtensionField.c create mode 100644 asn1c_defs/all-defs/ProtocolExtensionField.h create mode 100644 asn1c_defs/all-defs/ProtocolIE-Container.c create mode 100644 asn1c_defs/all-defs/ProtocolIE-Container.h create mode 100644 asn1c_defs/all-defs/ProtocolIE-ContainerList.c create mode 100644 asn1c_defs/all-defs/ProtocolIE-ContainerList.h create mode 100644 asn1c_defs/all-defs/ProtocolIE-ContainerPair.c create mode 100644 asn1c_defs/all-defs/ProtocolIE-ContainerPair.h create mode 100644 asn1c_defs/all-defs/ProtocolIE-ContainerPairList.c create mode 100644 asn1c_defs/all-defs/ProtocolIE-ContainerPairList.h create mode 100644 asn1c_defs/all-defs/ProtocolIE-Field.c create mode 100644 asn1c_defs/all-defs/ProtocolIE-Field.h create mode 100644 asn1c_defs/all-defs/ProtocolIE-FieldPair.c create mode 100644 asn1c_defs/all-defs/ProtocolIE-FieldPair.h create mode 100644 asn1c_defs/all-defs/ProtocolIE-ID.c create mode 100644 asn1c_defs/all-defs/ProtocolIE-ID.h create mode 100644 asn1c_defs/all-defs/ProtocolIE-Single-Container.c create mode 100644 asn1c_defs/all-defs/ProtocolIE-Single-Container.h create mode 100644 asn1c_defs/all-defs/QCI.c create mode 100644 asn1c_defs/all-defs/QCI.h create mode 100644 asn1c_defs/all-defs/RANfunction-Item.c create mode 100644 asn1c_defs/all-defs/RANfunction-Item.h create mode 100644 asn1c_defs/all-defs/RANfunctionDefinition.c create mode 100644 asn1c_defs/all-defs/RANfunctionDefinition.h create mode 100644 asn1c_defs/all-defs/RANfunctionID-Item.c create mode 100644 asn1c_defs/all-defs/RANfunctionID-Item.h create mode 100644 asn1c_defs/all-defs/RANfunctionID.c create mode 100644 asn1c_defs/all-defs/RANfunctionID.h create mode 100644 asn1c_defs/all-defs/RANfunctionIDcause-Item.c create mode 100644 asn1c_defs/all-defs/RANfunctionIDcause-Item.h create mode 100644 asn1c_defs/all-defs/RANfunctions-List.c create mode 100644 asn1c_defs/all-defs/RANfunctions-List.h create mode 100644 asn1c_defs/all-defs/RANfunctionsID-List.c create mode 100644 asn1c_defs/all-defs/RANfunctionsID-List.h create mode 100644 asn1c_defs/all-defs/RANfunctionsIDcause-List.c create mode 100644 asn1c_defs/all-defs/RANfunctionsIDcause-List.h create mode 100644 asn1c_defs/all-defs/RICaction-Admitted-Item.c create mode 100644 asn1c_defs/all-defs/RICaction-Admitted-Item.h create mode 100644 asn1c_defs/all-defs/RICaction-Admitted-List.c create mode 100644 asn1c_defs/all-defs/RICaction-Admitted-List.h create mode 100644 asn1c_defs/all-defs/RICaction-NotAdmitted-Item.c create mode 100644 asn1c_defs/all-defs/RICaction-NotAdmitted-Item.h create mode 100644 asn1c_defs/all-defs/RICaction-NotAdmitted-List.c create mode 100644 asn1c_defs/all-defs/RICaction-NotAdmitted-List.h create mode 100644 asn1c_defs/all-defs/RICaction-ToBeSetup-Item.c create mode 100644 asn1c_defs/all-defs/RICaction-ToBeSetup-Item.h create mode 100644 asn1c_defs/all-defs/RICactionDefinition.c create mode 100644 asn1c_defs/all-defs/RICactionDefinition.h create mode 100644 asn1c_defs/all-defs/RICactionID.c create mode 100644 asn1c_defs/all-defs/RICactionID.h create mode 100644 asn1c_defs/all-defs/RICactionType.c create mode 100644 asn1c_defs/all-defs/RICactionType.h create mode 100644 asn1c_defs/all-defs/RICactions-ToBeSetup-List.c create mode 100644 asn1c_defs/all-defs/RICactions-ToBeSetup-List.h create mode 100644 asn1c_defs/all-defs/RICcallProcessID.c create mode 100644 asn1c_defs/all-defs/RICcallProcessID.h create mode 100644 asn1c_defs/all-defs/RICcause.c create mode 100644 asn1c_defs/all-defs/RICcause.h create mode 100644 asn1c_defs/all-defs/RICcontrolAckRequest.c create mode 100644 asn1c_defs/all-defs/RICcontrolAckRequest.h create mode 100644 asn1c_defs/all-defs/RICcontrolAcknowledge.c create mode 100644 asn1c_defs/all-defs/RICcontrolAcknowledge.h create mode 100644 asn1c_defs/all-defs/RICcontrolFailure.c create mode 100644 asn1c_defs/all-defs/RICcontrolFailure.h create mode 100644 asn1c_defs/all-defs/RICcontrolHeader.c create mode 100644 asn1c_defs/all-defs/RICcontrolHeader.h create mode 100644 asn1c_defs/all-defs/RICcontrolMessage.c create mode 100644 asn1c_defs/all-defs/RICcontrolMessage.h create mode 100644 asn1c_defs/all-defs/RICcontrolRequest.c create mode 100644 asn1c_defs/all-defs/RICcontrolRequest.h create mode 100644 asn1c_defs/all-defs/RICcontrolStatus.c create mode 100644 asn1c_defs/all-defs/RICcontrolStatus.h create mode 100644 asn1c_defs/all-defs/RICeventTriggerDefinition.c create mode 100644 asn1c_defs/all-defs/RICeventTriggerDefinition.h create mode 100644 asn1c_defs/all-defs/RICindication.c create mode 100644 asn1c_defs/all-defs/RICindication.h create mode 100644 asn1c_defs/all-defs/RICindicationHeader.c create mode 100644 asn1c_defs/all-defs/RICindicationHeader.h create mode 100644 asn1c_defs/all-defs/RICindicationMessage.c create mode 100644 asn1c_defs/all-defs/RICindicationMessage.h create mode 100644 asn1c_defs/all-defs/RICindicationSN.c create mode 100644 asn1c_defs/all-defs/RICindicationSN.h create mode 100644 asn1c_defs/all-defs/RICindicationType.c create mode 100644 asn1c_defs/all-defs/RICindicationType.h create mode 100644 asn1c_defs/all-defs/RICrequestID.c create mode 100644 asn1c_defs/all-defs/RICrequestID.h create mode 100644 asn1c_defs/all-defs/RICserviceQuery.c create mode 100644 asn1c_defs/all-defs/RICserviceQuery.h create mode 100644 asn1c_defs/all-defs/RICserviceUpdate.c create mode 100644 asn1c_defs/all-defs/RICserviceUpdate.h create mode 100644 asn1c_defs/all-defs/RICserviceUpdateAcknowledge.c create mode 100644 asn1c_defs/all-defs/RICserviceUpdateAcknowledge.h create mode 100644 asn1c_defs/all-defs/RICserviceUpdateFailure.c create mode 100644 asn1c_defs/all-defs/RICserviceUpdateFailure.h create mode 100644 asn1c_defs/all-defs/RICsubscription.c create mode 100644 asn1c_defs/all-defs/RICsubscription.h create mode 100644 asn1c_defs/all-defs/RICsubscriptionDeleteFailure.c create mode 100644 asn1c_defs/all-defs/RICsubscriptionDeleteFailure.h create mode 100644 asn1c_defs/all-defs/RICsubscriptionDeleteRequest.c create mode 100644 asn1c_defs/all-defs/RICsubscriptionDeleteRequest.h create mode 100644 asn1c_defs/all-defs/RICsubscriptionDeleteResponse.c create mode 100644 asn1c_defs/all-defs/RICsubscriptionDeleteResponse.h create mode 100644 asn1c_defs/all-defs/RICsubscriptionFailure.c create mode 100644 asn1c_defs/all-defs/RICsubscriptionFailure.h create mode 100644 asn1c_defs/all-defs/RICsubscriptionRequest.c create mode 100644 asn1c_defs/all-defs/RICsubscriptionRequest.h create mode 100644 asn1c_defs/all-defs/RICsubscriptionResponse.c create mode 100644 asn1c_defs/all-defs/RICsubscriptionResponse.h create mode 100644 asn1c_defs/all-defs/RICsubsequentAction.c create mode 100644 asn1c_defs/all-defs/RICsubsequentAction.h create mode 100644 asn1c_defs/all-defs/RICsubsequentActionType.c create mode 100644 asn1c_defs/all-defs/RICsubsequentActionType.h create mode 100644 asn1c_defs/all-defs/RICtimeToWait.c create mode 100644 asn1c_defs/all-defs/RICtimeToWait.h create mode 100644 asn1c_defs/all-defs/RLC-Status.c create mode 100644 asn1c_defs/all-defs/RLC-Status.h create mode 100644 asn1c_defs/all-defs/RLCMode.c create mode 100644 asn1c_defs/all-defs/RLCMode.h create mode 100644 asn1c_defs/all-defs/RLFIndication.c create mode 100644 asn1c_defs/all-defs/RLFIndication.h create mode 100644 asn1c_defs/all-defs/RNL-Header.c create mode 100644 asn1c_defs/all-defs/RNL-Header.h create mode 100644 asn1c_defs/all-defs/RNTP-Threshold.c create mode 100644 asn1c_defs/all-defs/RNTP-Threshold.h create mode 100644 asn1c_defs/all-defs/RRC-Config-Ind.c create mode 100644 asn1c_defs/all-defs/RRC-Config-Ind.h create mode 100644 asn1c_defs/all-defs/RRC-Context.c create mode 100644 asn1c_defs/all-defs/RRC-Context.h create mode 100644 asn1c_defs/all-defs/RRCConnReestabIndicator.c create mode 100644 asn1c_defs/all-defs/RRCConnReestabIndicator.h create mode 100644 asn1c_defs/all-defs/RRCConnSetupIndicator.c create mode 100644 asn1c_defs/all-defs/RRCConnSetupIndicator.h create mode 100644 asn1c_defs/all-defs/RRCContainer.c create mode 100644 asn1c_defs/all-defs/RRCContainer.h create mode 100644 asn1c_defs/all-defs/RRCTransfer.c create mode 100644 asn1c_defs/all-defs/RRCTransfer.h create mode 100644 asn1c_defs/all-defs/RSRPMRList.c create mode 100644 asn1c_defs/all-defs/RSRPMRList.h create mode 100644 asn1c_defs/all-defs/RSRPMeasurementResult.c create mode 100644 asn1c_defs/all-defs/RSRPMeasurementResult.h create mode 100644 asn1c_defs/all-defs/RadioResourceStatus.c create mode 100644 asn1c_defs/all-defs/RadioResourceStatus.h create mode 100644 asn1c_defs/all-defs/RadioframeAllocationOffset.c create mode 100644 asn1c_defs/all-defs/RadioframeAllocationOffset.h create mode 100644 asn1c_defs/all-defs/RadioframeAllocationPeriod.c create mode 100644 asn1c_defs/all-defs/RadioframeAllocationPeriod.h create mode 100644 asn1c_defs/all-defs/ReceiveStatusOfULPDCPSDUsExtended.c create mode 100644 asn1c_defs/all-defs/ReceiveStatusOfULPDCPSDUsExtended.h create mode 100644 asn1c_defs/all-defs/ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.c create mode 100644 asn1c_defs/all-defs/ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.h create mode 100644 asn1c_defs/all-defs/ReceiveStatusofULPDCPSDUs.c create mode 100644 asn1c_defs/all-defs/ReceiveStatusofULPDCPSDUs.h create mode 100644 asn1c_defs/all-defs/Reestablishment-Indication.c create mode 100644 asn1c_defs/all-defs/Reestablishment-Indication.h create mode 100644 asn1c_defs/all-defs/Registration-Request.c create mode 100644 asn1c_defs/all-defs/Registration-Request.h create mode 100644 asn1c_defs/all-defs/RelativeNarrowbandTxPower.c create mode 100644 asn1c_defs/all-defs/RelativeNarrowbandTxPower.h create mode 100644 asn1c_defs/all-defs/ReplacingCellsList-Item.c create mode 100644 asn1c_defs/all-defs/ReplacingCellsList-Item.h create mode 100644 asn1c_defs/all-defs/ReplacingCellsList.c create mode 100644 asn1c_defs/all-defs/ReplacingCellsList.h create mode 100644 asn1c_defs/all-defs/ReportAmountMDT.c create mode 100644 asn1c_defs/all-defs/ReportAmountMDT.h create mode 100644 asn1c_defs/all-defs/ReportArea.c create mode 100644 asn1c_defs/all-defs/ReportArea.h create mode 100644 asn1c_defs/all-defs/ReportCharacteristics.c create mode 100644 asn1c_defs/all-defs/ReportCharacteristics.h create mode 100644 asn1c_defs/all-defs/ReportIntervalMDT.c create mode 100644 asn1c_defs/all-defs/ReportIntervalMDT.h create mode 100644 asn1c_defs/all-defs/ReportingPeriodicity.c create mode 100644 asn1c_defs/all-defs/ReportingPeriodicity.h create mode 100644 asn1c_defs/all-defs/ReportingPeriodicityCSIR.c create mode 100644 asn1c_defs/all-defs/ReportingPeriodicityCSIR.h create mode 100644 asn1c_defs/all-defs/ReportingPeriodicityRSRPMR.c create mode 100644 asn1c_defs/all-defs/ReportingPeriodicityRSRPMR.h create mode 100644 asn1c_defs/all-defs/ReservedSubframePattern.c create mode 100644 asn1c_defs/all-defs/ReservedSubframePattern.h create mode 100644 asn1c_defs/all-defs/ResetRequest.c create mode 100644 asn1c_defs/all-defs/ResetRequest.h create mode 100644 asn1c_defs/all-defs/ResetResponse.c create mode 100644 asn1c_defs/all-defs/ResetResponse.h create mode 100644 asn1c_defs/all-defs/ResourceStatusFailure.c create mode 100644 asn1c_defs/all-defs/ResourceStatusFailure.h create mode 100644 asn1c_defs/all-defs/ResourceStatusRequest.c create mode 100644 asn1c_defs/all-defs/ResourceStatusRequest.h create mode 100644 asn1c_defs/all-defs/ResourceStatusResponse.c create mode 100644 asn1c_defs/all-defs/ResourceStatusResponse.h create mode 100644 asn1c_defs/all-defs/ResourceStatusUpdate.c create mode 100644 asn1c_defs/all-defs/ResourceStatusUpdate.h create mode 100644 asn1c_defs/all-defs/ResourceType.c create mode 100644 asn1c_defs/all-defs/ResourceType.h create mode 100644 asn1c_defs/all-defs/RespondingNodeType-EndcConfigUpdate.c create mode 100644 asn1c_defs/all-defs/RespondingNodeType-EndcConfigUpdate.h create mode 100644 asn1c_defs/all-defs/RespondingNodeType-EndcX2Removal.c create mode 100644 asn1c_defs/all-defs/RespondingNodeType-EndcX2Removal.h create mode 100644 asn1c_defs/all-defs/RespondingNodeType-EndcX2Setup.c create mode 100644 asn1c_defs/all-defs/RespondingNodeType-EndcX2Setup.h create mode 100644 asn1c_defs/all-defs/RespondingNodeType-EutranrCellResourceCoordination.c create mode 100644 asn1c_defs/all-defs/RespondingNodeType-EutranrCellResourceCoordination.h create mode 100644 asn1c_defs/all-defs/ResponseInformationSeNBReconfComp-RejectByMeNBItem.c create mode 100644 asn1c_defs/all-defs/ResponseInformationSeNBReconfComp-RejectByMeNBItem.h create mode 100644 asn1c_defs/all-defs/ResponseInformationSeNBReconfComp-SuccessItem.c create mode 100644 asn1c_defs/all-defs/ResponseInformationSeNBReconfComp-SuccessItem.h create mode 100644 asn1c_defs/all-defs/ResponseInformationSeNBReconfComp.c create mode 100644 asn1c_defs/all-defs/ResponseInformationSeNBReconfComp.h create mode 100644 asn1c_defs/all-defs/ResponseInformationSgNBReconfComp-RejectByMeNBItem.c create mode 100644 asn1c_defs/all-defs/ResponseInformationSgNBReconfComp-RejectByMeNBItem.h create mode 100644 asn1c_defs/all-defs/ResponseInformationSgNBReconfComp-SuccessItem.c create mode 100644 asn1c_defs/all-defs/ResponseInformationSgNBReconfComp-SuccessItem.h create mode 100644 asn1c_defs/all-defs/ResponseInformationSgNBReconfComp.c create mode 100644 asn1c_defs/all-defs/ResponseInformationSgNBReconfComp.h create mode 100644 asn1c_defs/all-defs/ResumeID.c create mode 100644 asn1c_defs/all-defs/ResumeID.h create mode 100644 asn1c_defs/all-defs/RetrieveUEContextFailure.c create mode 100644 asn1c_defs/all-defs/RetrieveUEContextFailure.h create mode 100644 asn1c_defs/all-defs/RetrieveUEContextRequest.c create mode 100644 asn1c_defs/all-defs/RetrieveUEContextRequest.h create mode 100644 asn1c_defs/all-defs/RetrieveUEContextResponse.c create mode 100644 asn1c_defs/all-defs/RetrieveUEContextResponse.h create mode 100644 asn1c_defs/all-defs/S1TNLLoadIndicator.c create mode 100644 asn1c_defs/all-defs/S1TNLLoadIndicator.h create mode 100644 asn1c_defs/all-defs/SCGChangeIndication.c create mode 100644 asn1c_defs/all-defs/SCGChangeIndication.h create mode 100644 asn1c_defs/all-defs/SCGConfigurationQuery.c create mode 100644 asn1c_defs/all-defs/SCGConfigurationQuery.h create mode 100644 asn1c_defs/all-defs/SGNB-Addition-Trigger-Ind.c create mode 100644 asn1c_defs/all-defs/SGNB-Addition-Trigger-Ind.h create mode 100644 asn1c_defs/all-defs/SIPTOBearerDeactivationIndication.c create mode 100644 asn1c_defs/all-defs/SIPTOBearerDeactivationIndication.h create mode 100644 asn1c_defs/all-defs/SNStatusTransfer.c create mode 100644 asn1c_defs/all-defs/SNStatusTransfer.h create mode 100644 asn1c_defs/all-defs/SRBType.c create mode 100644 asn1c_defs/all-defs/SRBType.h create mode 100644 asn1c_defs/all-defs/SRVCCOperationPossible.c create mode 100644 asn1c_defs/all-defs/SRVCCOperationPossible.h create mode 100644 asn1c_defs/all-defs/SULInformation.c create mode 100644 asn1c_defs/all-defs/SULInformation.h create mode 100644 asn1c_defs/all-defs/ScheduledCommunicationTime.c create mode 100644 asn1c_defs/all-defs/ScheduledCommunicationTime.h create mode 100644 asn1c_defs/all-defs/SeNBAdditionRequest.c create mode 100644 asn1c_defs/all-defs/SeNBAdditionRequest.h create mode 100644 asn1c_defs/all-defs/SeNBAdditionRequestAcknowledge.c create mode 100644 asn1c_defs/all-defs/SeNBAdditionRequestAcknowledge.h create mode 100644 asn1c_defs/all-defs/SeNBAdditionRequestReject.c create mode 100644 asn1c_defs/all-defs/SeNBAdditionRequestReject.h create mode 100644 asn1c_defs/all-defs/SeNBCounterCheckRequest.c create mode 100644 asn1c_defs/all-defs/SeNBCounterCheckRequest.h create mode 100644 asn1c_defs/all-defs/SeNBModificationConfirm.c create mode 100644 asn1c_defs/all-defs/SeNBModificationConfirm.h create mode 100644 asn1c_defs/all-defs/SeNBModificationRefuse.c create mode 100644 asn1c_defs/all-defs/SeNBModificationRefuse.h create mode 100644 asn1c_defs/all-defs/SeNBModificationRequest.c create mode 100644 asn1c_defs/all-defs/SeNBModificationRequest.h create mode 100644 asn1c_defs/all-defs/SeNBModificationRequestAcknowledge.c create mode 100644 asn1c_defs/all-defs/SeNBModificationRequestAcknowledge.h create mode 100644 asn1c_defs/all-defs/SeNBModificationRequestReject.c create mode 100644 asn1c_defs/all-defs/SeNBModificationRequestReject.h create mode 100644 asn1c_defs/all-defs/SeNBModificationRequired.c create mode 100644 asn1c_defs/all-defs/SeNBModificationRequired.h create mode 100644 asn1c_defs/all-defs/SeNBReconfigurationComplete.c create mode 100644 asn1c_defs/all-defs/SeNBReconfigurationComplete.h create mode 100644 asn1c_defs/all-defs/SeNBReleaseConfirm.c create mode 100644 asn1c_defs/all-defs/SeNBReleaseConfirm.h create mode 100644 asn1c_defs/all-defs/SeNBReleaseRequest.c create mode 100644 asn1c_defs/all-defs/SeNBReleaseRequest.h create mode 100644 asn1c_defs/all-defs/SeNBReleaseRequired.c create mode 100644 asn1c_defs/all-defs/SeNBReleaseRequired.h create mode 100644 asn1c_defs/all-defs/SeNBSecurityKey.c create mode 100644 asn1c_defs/all-defs/SeNBSecurityKey.h create mode 100644 asn1c_defs/all-defs/SeNBtoMeNBContainer.c create mode 100644 asn1c_defs/all-defs/SeNBtoMeNBContainer.h create mode 100644 asn1c_defs/all-defs/SecondaryRATDataUsageReport.c create mode 100644 asn1c_defs/all-defs/SecondaryRATDataUsageReport.h create mode 100644 asn1c_defs/all-defs/SecondaryRATUsageReport-Item.c create mode 100644 asn1c_defs/all-defs/SecondaryRATUsageReport-Item.h create mode 100644 asn1c_defs/all-defs/SecondaryRATUsageReportList.c create mode 100644 asn1c_defs/all-defs/SecondaryRATUsageReportList.h create mode 100644 asn1c_defs/all-defs/ServedCell-Information.c create mode 100644 asn1c_defs/all-defs/ServedCell-Information.h create mode 100644 asn1c_defs/all-defs/ServedCells.c create mode 100644 asn1c_defs/all-defs/ServedCells.h create mode 100644 asn1c_defs/all-defs/ServedCellsToActivate-Item.c create mode 100644 asn1c_defs/all-defs/ServedCellsToActivate-Item.h create mode 100644 asn1c_defs/all-defs/ServedCellsToActivate.c create mode 100644 asn1c_defs/all-defs/ServedCellsToActivate.h create mode 100644 asn1c_defs/all-defs/ServedCellsToModify-Item.c create mode 100644 asn1c_defs/all-defs/ServedCellsToModify-Item.h create mode 100644 asn1c_defs/all-defs/ServedCellsToModify.c create mode 100644 asn1c_defs/all-defs/ServedCellsToModify.h create mode 100644 asn1c_defs/all-defs/ServedEUTRAcellsENDCX2ManagementList.c create mode 100644 asn1c_defs/all-defs/ServedEUTRAcellsENDCX2ManagementList.h create mode 100644 asn1c_defs/all-defs/ServedEUTRAcellsToDeleteListENDCConfUpd.c create mode 100644 asn1c_defs/all-defs/ServedEUTRAcellsToDeleteListENDCConfUpd.h create mode 100644 asn1c_defs/all-defs/ServedEUTRAcellsToModifyListENDCConfUpd.c create mode 100644 asn1c_defs/all-defs/ServedEUTRAcellsToModifyListENDCConfUpd.h create mode 100644 asn1c_defs/all-defs/ServedNRCell-Information.c create mode 100644 asn1c_defs/all-defs/ServedNRCell-Information.h create mode 100644 asn1c_defs/all-defs/ServedNRCellsToActivate-Item.c create mode 100644 asn1c_defs/all-defs/ServedNRCellsToActivate-Item.h create mode 100644 asn1c_defs/all-defs/ServedNRCellsToActivate.c create mode 100644 asn1c_defs/all-defs/ServedNRCellsToActivate.h create mode 100644 asn1c_defs/all-defs/ServedNRCellsToModify-Item.c create mode 100644 asn1c_defs/all-defs/ServedNRCellsToModify-Item.h create mode 100644 asn1c_defs/all-defs/ServedNRcellsENDCX2ManagementList.c create mode 100644 asn1c_defs/all-defs/ServedNRcellsENDCX2ManagementList.h create mode 100644 asn1c_defs/all-defs/ServedNRcellsToDeleteENDCConfUpdList.c create mode 100644 asn1c_defs/all-defs/ServedNRcellsToDeleteENDCConfUpdList.h create mode 100644 asn1c_defs/all-defs/ServedNRcellsToModifyENDCConfUpdList.c create mode 100644 asn1c_defs/all-defs/ServedNRcellsToModifyENDCConfUpdList.h create mode 100644 asn1c_defs/all-defs/ServiceType.c create mode 100644 asn1c_defs/all-defs/ServiceType.h create mode 100644 asn1c_defs/all-defs/SgNB-UE-X2AP-ID.c create mode 100644 asn1c_defs/all-defs/SgNB-UE-X2AP-ID.h create mode 100644 asn1c_defs/all-defs/SgNBActivityNotification.c create mode 100644 asn1c_defs/all-defs/SgNBActivityNotification.h create mode 100644 asn1c_defs/all-defs/SgNBAdditionRequest.c create mode 100644 asn1c_defs/all-defs/SgNBAdditionRequest.h create mode 100644 asn1c_defs/all-defs/SgNBAdditionRequestAcknowledge.c create mode 100644 asn1c_defs/all-defs/SgNBAdditionRequestAcknowledge.h create mode 100644 asn1c_defs/all-defs/SgNBAdditionRequestReject.c create mode 100644 asn1c_defs/all-defs/SgNBAdditionRequestReject.h create mode 100644 asn1c_defs/all-defs/SgNBChangeConfirm.c create mode 100644 asn1c_defs/all-defs/SgNBChangeConfirm.h create mode 100644 asn1c_defs/all-defs/SgNBChangeRefuse.c create mode 100644 asn1c_defs/all-defs/SgNBChangeRefuse.h create mode 100644 asn1c_defs/all-defs/SgNBChangeRequired.c create mode 100644 asn1c_defs/all-defs/SgNBChangeRequired.h create mode 100644 asn1c_defs/all-defs/SgNBCoordinationAssistanceInformation.c create mode 100644 asn1c_defs/all-defs/SgNBCoordinationAssistanceInformation.h create mode 100644 asn1c_defs/all-defs/SgNBCounterCheckRequest.c create mode 100644 asn1c_defs/all-defs/SgNBCounterCheckRequest.h create mode 100644 asn1c_defs/all-defs/SgNBModificationConfirm.c create mode 100644 asn1c_defs/all-defs/SgNBModificationConfirm.h create mode 100644 asn1c_defs/all-defs/SgNBModificationRefuse.c create mode 100644 asn1c_defs/all-defs/SgNBModificationRefuse.h create mode 100644 asn1c_defs/all-defs/SgNBModificationRequest.c create mode 100644 asn1c_defs/all-defs/SgNBModificationRequest.h create mode 100644 asn1c_defs/all-defs/SgNBModificationRequestAcknowledge.c create mode 100644 asn1c_defs/all-defs/SgNBModificationRequestAcknowledge.h create mode 100644 asn1c_defs/all-defs/SgNBModificationRequestReject.c create mode 100644 asn1c_defs/all-defs/SgNBModificationRequestReject.h create mode 100644 asn1c_defs/all-defs/SgNBModificationRequired.c create mode 100644 asn1c_defs/all-defs/SgNBModificationRequired.h create mode 100644 asn1c_defs/all-defs/SgNBReconfigurationComplete.c create mode 100644 asn1c_defs/all-defs/SgNBReconfigurationComplete.h create mode 100644 asn1c_defs/all-defs/SgNBReleaseConfirm.c create mode 100644 asn1c_defs/all-defs/SgNBReleaseConfirm.h create mode 100644 asn1c_defs/all-defs/SgNBReleaseRequest.c create mode 100644 asn1c_defs/all-defs/SgNBReleaseRequest.h create mode 100644 asn1c_defs/all-defs/SgNBReleaseRequestAcknowledge.c create mode 100644 asn1c_defs/all-defs/SgNBReleaseRequestAcknowledge.h create mode 100644 asn1c_defs/all-defs/SgNBReleaseRequestReject.c create mode 100644 asn1c_defs/all-defs/SgNBReleaseRequestReject.h create mode 100644 asn1c_defs/all-defs/SgNBReleaseRequired.c create mode 100644 asn1c_defs/all-defs/SgNBReleaseRequired.h create mode 100644 asn1c_defs/all-defs/SgNBResourceCoordinationInformation.c create mode 100644 asn1c_defs/all-defs/SgNBResourceCoordinationInformation.h create mode 100644 asn1c_defs/all-defs/SgNBSecurityKey.c create mode 100644 asn1c_defs/all-defs/SgNBSecurityKey.h create mode 100644 asn1c_defs/all-defs/SgNBtoMeNBContainer.c create mode 100644 asn1c_defs/all-defs/SgNBtoMeNBContainer.h create mode 100644 asn1c_defs/all-defs/SharedResourceType.c create mode 100644 asn1c_defs/all-defs/SharedResourceType.h create mode 100644 asn1c_defs/all-defs/ShortMAC-I.c create mode 100644 asn1c_defs/all-defs/ShortMAC-I.h create mode 100644 asn1c_defs/all-defs/SourceOfUEActivityBehaviourInformation.c create mode 100644 asn1c_defs/all-defs/SourceOfUEActivityBehaviourInformation.h create mode 100644 asn1c_defs/all-defs/SpecialSubframe-Info.c create mode 100644 asn1c_defs/all-defs/SpecialSubframe-Info.h create mode 100644 asn1c_defs/all-defs/SpecialSubframePatterns.c create mode 100644 asn1c_defs/all-defs/SpecialSubframePatterns.h create mode 100644 asn1c_defs/all-defs/SpectrumSharingGroupID.c create mode 100644 asn1c_defs/all-defs/SpectrumSharingGroupID.h create mode 100644 asn1c_defs/all-defs/SplitSRB.c create mode 100644 asn1c_defs/all-defs/SplitSRB.h create mode 100644 asn1c_defs/all-defs/SplitSRBs.c create mode 100644 asn1c_defs/all-defs/SplitSRBs.h create mode 100644 asn1c_defs/all-defs/Style-ID.c create mode 100644 asn1c_defs/all-defs/Style-ID.h create mode 100644 asn1c_defs/all-defs/SubbandCQI.c create mode 100644 asn1c_defs/all-defs/SubbandCQI.h create mode 100644 asn1c_defs/all-defs/SubbandCQICodeword0.c create mode 100644 asn1c_defs/all-defs/SubbandCQICodeword0.h create mode 100644 asn1c_defs/all-defs/SubbandCQICodeword1.c create mode 100644 asn1c_defs/all-defs/SubbandCQICodeword1.h create mode 100644 asn1c_defs/all-defs/SubbandCQIItem.c create mode 100644 asn1c_defs/all-defs/SubbandCQIItem.h create mode 100644 asn1c_defs/all-defs/SubbandCQIList.c create mode 100644 asn1c_defs/all-defs/SubbandCQIList.h create mode 100644 asn1c_defs/all-defs/SubbandSize.c create mode 100644 asn1c_defs/all-defs/SubbandSize.h create mode 100644 asn1c_defs/all-defs/SubframeAllocation.c create mode 100644 asn1c_defs/all-defs/SubframeAllocation.h create mode 100644 asn1c_defs/all-defs/SubframeAssignment.c create mode 100644 asn1c_defs/all-defs/SubframeAssignment.h create mode 100644 asn1c_defs/all-defs/SubframeType.c create mode 100644 asn1c_defs/all-defs/SubframeType.h create mode 100644 asn1c_defs/all-defs/SubscriberProfileIDforRFP.c create mode 100644 asn1c_defs/all-defs/SubscriberProfileIDforRFP.h create mode 100644 asn1c_defs/all-defs/Subscription-Based-UE-DifferentiationInfo.c create mode 100644 asn1c_defs/all-defs/Subscription-Based-UE-DifferentiationInfo.h create mode 100644 asn1c_defs/all-defs/SuccessfulOutcome.c create mode 100644 asn1c_defs/all-defs/SuccessfulOutcome.h create mode 100644 asn1c_defs/all-defs/SupportedSULFreqBandItem.c create mode 100644 asn1c_defs/all-defs/SupportedSULFreqBandItem.h create mode 100644 asn1c_defs/all-defs/TABasedMDT.c create mode 100644 asn1c_defs/all-defs/TABasedMDT.h create mode 100644 asn1c_defs/all-defs/TABasedQMC.c create mode 100644 asn1c_defs/all-defs/TABasedQMC.h create mode 100644 asn1c_defs/all-defs/TAC.c create mode 100644 asn1c_defs/all-defs/TAC.h create mode 100644 asn1c_defs/all-defs/TAI-Item.c create mode 100644 asn1c_defs/all-defs/TAI-Item.h create mode 100644 asn1c_defs/all-defs/TAIBasedMDT.c create mode 100644 asn1c_defs/all-defs/TAIBasedMDT.h create mode 100644 asn1c_defs/all-defs/TAIBasedQMC.c create mode 100644 asn1c_defs/all-defs/TAIBasedQMC.h create mode 100644 asn1c_defs/all-defs/TAIListforMDT.c create mode 100644 asn1c_defs/all-defs/TAIListforMDT.h create mode 100644 asn1c_defs/all-defs/TAIListforQMC.c create mode 100644 asn1c_defs/all-defs/TAIListforQMC.h create mode 100644 asn1c_defs/all-defs/TAListforMDT.c create mode 100644 asn1c_defs/all-defs/TAListforMDT.h create mode 100644 asn1c_defs/all-defs/TAListforQMC.c create mode 100644 asn1c_defs/all-defs/TAListforQMC.h create mode 100644 asn1c_defs/all-defs/TDD-Info.c create mode 100644 asn1c_defs/all-defs/TDD-Info.h create mode 100644 asn1c_defs/all-defs/TDD-InfoNeighbourServedNRCell-Information.c create mode 100644 asn1c_defs/all-defs/TDD-InfoNeighbourServedNRCell-Information.h create mode 100644 asn1c_defs/all-defs/TDD-InfoServedNRCell-Information.c create mode 100644 asn1c_defs/all-defs/TDD-InfoServedNRCell-Information.h create mode 100644 asn1c_defs/all-defs/TargetCellInUTRAN.c create mode 100644 asn1c_defs/all-defs/TargetCellInUTRAN.h create mode 100644 asn1c_defs/all-defs/TargeteNBtoSource-eNBTransparentContainer.c create mode 100644 asn1c_defs/all-defs/TargeteNBtoSource-eNBTransparentContainer.h create mode 100644 asn1c_defs/all-defs/Threshold-RSRP.c create mode 100644 asn1c_defs/all-defs/Threshold-RSRP.h create mode 100644 asn1c_defs/all-defs/Threshold-RSRQ.c create mode 100644 asn1c_defs/all-defs/Threshold-RSRQ.h create mode 100644 asn1c_defs/all-defs/Time-UE-StayedInCell-EnhancedGranularity.c create mode 100644 asn1c_defs/all-defs/Time-UE-StayedInCell-EnhancedGranularity.h create mode 100644 asn1c_defs/all-defs/Time-UE-StayedInCell.c create mode 100644 asn1c_defs/all-defs/Time-UE-StayedInCell.h create mode 100644 asn1c_defs/all-defs/TimeStamp.c create mode 100644 asn1c_defs/all-defs/TimeStamp.h create mode 100644 asn1c_defs/all-defs/TimeToWait.c create mode 100644 asn1c_defs/all-defs/TimeToWait.h create mode 100644 asn1c_defs/all-defs/TraceActivation.c create mode 100644 asn1c_defs/all-defs/TraceActivation.h create mode 100644 asn1c_defs/all-defs/TraceCollectionEntityIPAddress.c create mode 100644 asn1c_defs/all-defs/TraceCollectionEntityIPAddress.h create mode 100644 asn1c_defs/all-defs/TraceDepth.c create mode 100644 asn1c_defs/all-defs/TraceDepth.h create mode 100644 asn1c_defs/all-defs/Transmission-Bandwidth.c create mode 100644 asn1c_defs/all-defs/Transmission-Bandwidth.h create mode 100644 asn1c_defs/all-defs/TransportLayerAddress.c create mode 100644 asn1c_defs/all-defs/TransportLayerAddress.h create mode 100644 asn1c_defs/all-defs/TriggeringMessage.c create mode 100644 asn1c_defs/all-defs/TriggeringMessage.h create mode 100644 asn1c_defs/all-defs/TunnelInformation.c create mode 100644 asn1c_defs/all-defs/TunnelInformation.h create mode 100644 asn1c_defs/all-defs/TypeOfError.c create mode 100644 asn1c_defs/all-defs/TypeOfError.h create mode 100644 asn1c_defs/all-defs/TypeOfMessage.c create mode 100644 asn1c_defs/all-defs/TypeOfMessage.h create mode 100644 asn1c_defs/all-defs/UE-ContextInformation-SgNBModReq.c create mode 100644 asn1c_defs/all-defs/UE-ContextInformation-SgNBModReq.h create mode 100644 asn1c_defs/all-defs/UE-ContextInformation.c create mode 100644 asn1c_defs/all-defs/UE-ContextInformation.h create mode 100644 asn1c_defs/all-defs/UE-ContextInformationRetrieve.c create mode 100644 asn1c_defs/all-defs/UE-ContextInformationRetrieve.h create mode 100644 asn1c_defs/all-defs/UE-ContextInformationSeNBModReq.c create mode 100644 asn1c_defs/all-defs/UE-ContextInformationSeNBModReq.h create mode 100644 asn1c_defs/all-defs/UE-ContextKeptIndicator.c create mode 100644 asn1c_defs/all-defs/UE-ContextKeptIndicator.h create mode 100644 asn1c_defs/all-defs/UE-ContextReferenceAtSeNB.c create mode 100644 asn1c_defs/all-defs/UE-ContextReferenceAtSeNB.h create mode 100644 asn1c_defs/all-defs/UE-ContextReferenceAtSgNB.c create mode 100644 asn1c_defs/all-defs/UE-ContextReferenceAtSgNB.h create mode 100644 asn1c_defs/all-defs/UE-ContextReferenceAtWT.c create mode 100644 asn1c_defs/all-defs/UE-ContextReferenceAtWT.h create mode 100644 asn1c_defs/all-defs/UE-HistoryInformation.c create mode 100644 asn1c_defs/all-defs/UE-HistoryInformation.h create mode 100644 asn1c_defs/all-defs/UE-HistoryInformationFromTheUE.c create mode 100644 asn1c_defs/all-defs/UE-HistoryInformationFromTheUE.h create mode 100644 asn1c_defs/all-defs/UE-RLF-Report-Container-for-extended-bands.c create mode 100644 asn1c_defs/all-defs/UE-RLF-Report-Container-for-extended-bands.h create mode 100644 asn1c_defs/all-defs/UE-RLF-Report-Container.c create mode 100644 asn1c_defs/all-defs/UE-RLF-Report-Container.h create mode 100644 asn1c_defs/all-defs/UE-S1AP-ID.c create mode 100644 asn1c_defs/all-defs/UE-S1AP-ID.h create mode 100644 asn1c_defs/all-defs/UE-X2AP-ID-Extension.c create mode 100644 asn1c_defs/all-defs/UE-X2AP-ID-Extension.h create mode 100644 asn1c_defs/all-defs/UE-X2AP-ID.c create mode 100644 asn1c_defs/all-defs/UE-X2AP-ID.h create mode 100644 asn1c_defs/all-defs/UEAggregateMaximumBitRate.c create mode 100644 asn1c_defs/all-defs/UEAggregateMaximumBitRate.h create mode 100644 asn1c_defs/all-defs/UEAppLayerMeasConfig.c create mode 100644 asn1c_defs/all-defs/UEAppLayerMeasConfig.h create mode 100644 asn1c_defs/all-defs/UEContextRelease.c create mode 100644 asn1c_defs/all-defs/UEContextRelease.h create mode 100644 asn1c_defs/all-defs/UEID.c create mode 100644 asn1c_defs/all-defs/UEID.h create mode 100644 asn1c_defs/all-defs/UENRMeasurement.c create mode 100644 asn1c_defs/all-defs/UENRMeasurement.h create mode 100644 asn1c_defs/all-defs/UESecurityCapabilities.c create mode 100644 asn1c_defs/all-defs/UESecurityCapabilities.h create mode 100644 asn1c_defs/all-defs/UESidelinkAggregateMaximumBitRate.c create mode 100644 asn1c_defs/all-defs/UESidelinkAggregateMaximumBitRate.h create mode 100644 asn1c_defs/all-defs/UEsToBeResetList-Item.c create mode 100644 asn1c_defs/all-defs/UEsToBeResetList-Item.h create mode 100644 asn1c_defs/all-defs/UEsToBeResetList.c create mode 100644 asn1c_defs/all-defs/UEsToBeResetList.h create mode 100644 asn1c_defs/all-defs/UL-GBR-PRB-usage.c create mode 100644 asn1c_defs/all-defs/UL-GBR-PRB-usage.h create mode 100644 asn1c_defs/all-defs/UL-HighInterferenceIndication.c create mode 100644 asn1c_defs/all-defs/UL-HighInterferenceIndication.h create mode 100644 asn1c_defs/all-defs/UL-HighInterferenceIndicationInfo-Item.c create mode 100644 asn1c_defs/all-defs/UL-HighInterferenceIndicationInfo-Item.h create mode 100644 asn1c_defs/all-defs/UL-HighInterferenceIndicationInfo.c create mode 100644 asn1c_defs/all-defs/UL-HighInterferenceIndicationInfo.h create mode 100644 asn1c_defs/all-defs/UL-InterferenceOverloadIndication-Item.c create mode 100644 asn1c_defs/all-defs/UL-InterferenceOverloadIndication-Item.h create mode 100644 asn1c_defs/all-defs/UL-InterferenceOverloadIndication.c create mode 100644 asn1c_defs/all-defs/UL-InterferenceOverloadIndication.h create mode 100644 asn1c_defs/all-defs/UL-Total-PRB-usage.c create mode 100644 asn1c_defs/all-defs/UL-Total-PRB-usage.h create mode 100644 asn1c_defs/all-defs/UL-UE-Configuration.c create mode 100644 asn1c_defs/all-defs/UL-UE-Configuration.h create mode 100644 asn1c_defs/all-defs/UL-non-GBR-PRB-usage.c create mode 100644 asn1c_defs/all-defs/UL-non-GBR-PRB-usage.h create mode 100644 asn1c_defs/all-defs/UL-scheduling-PDCCH-CCE-usage.c create mode 100644 asn1c_defs/all-defs/UL-scheduling-PDCCH-CCE-usage.h create mode 100644 asn1c_defs/all-defs/ULConfiguration.c create mode 100644 asn1c_defs/all-defs/ULConfiguration.h create mode 100644 asn1c_defs/all-defs/ULOnlySharing.c create mode 100644 asn1c_defs/all-defs/ULOnlySharing.h create mode 100644 asn1c_defs/all-defs/ULResourceBitmapULandDLSharing.c create mode 100644 asn1c_defs/all-defs/ULResourceBitmapULandDLSharing.h create mode 100644 asn1c_defs/all-defs/ULResourcesULandDLSharing.c create mode 100644 asn1c_defs/all-defs/ULResourcesULandDLSharing.h create mode 100644 asn1c_defs/all-defs/ULandDLSharing.c create mode 100644 asn1c_defs/all-defs/ULandDLSharing.h create mode 100644 asn1c_defs/all-defs/UnsuccessfulOutcome.c create mode 100644 asn1c_defs/all-defs/UnsuccessfulOutcome.h create mode 100644 asn1c_defs/all-defs/UsableABSInformation.c create mode 100644 asn1c_defs/all-defs/UsableABSInformation.h create mode 100644 asn1c_defs/all-defs/UsableABSInformationFDD.c create mode 100644 asn1c_defs/all-defs/UsableABSInformationFDD.h create mode 100644 asn1c_defs/all-defs/UsableABSInformationTDD.c create mode 100644 asn1c_defs/all-defs/UsableABSInformationTDD.h create mode 100644 asn1c_defs/all-defs/UserPlaneTrafficActivityReport.c create mode 100644 asn1c_defs/all-defs/UserPlaneTrafficActivityReport.h create mode 100644 asn1c_defs/all-defs/V2XServicesAuthorized.c create mode 100644 asn1c_defs/all-defs/V2XServicesAuthorized.h create mode 100644 asn1c_defs/all-defs/VehicleUE.c create mode 100644 asn1c_defs/all-defs/VehicleUE.h create mode 100644 asn1c_defs/all-defs/WLANMeasConfig.c create mode 100644 asn1c_defs/all-defs/WLANMeasConfig.h create mode 100644 asn1c_defs/all-defs/WLANMeasConfigNameList.c create mode 100644 asn1c_defs/all-defs/WLANMeasConfigNameList.h create mode 100644 asn1c_defs/all-defs/WLANMeasurementConfiguration.c create mode 100644 asn1c_defs/all-defs/WLANMeasurementConfiguration.h create mode 100644 asn1c_defs/all-defs/WLANName.c create mode 100644 asn1c_defs/all-defs/WLANName.h create mode 100644 asn1c_defs/all-defs/WT-UE-XwAP-ID.c create mode 100644 asn1c_defs/all-defs/WT-UE-XwAP-ID.h create mode 100644 asn1c_defs/all-defs/WTID-Long-Type2.c create mode 100644 asn1c_defs/all-defs/WTID-Long-Type2.h create mode 100644 asn1c_defs/all-defs/WTID-Type1.c create mode 100644 asn1c_defs/all-defs/WTID-Type1.h create mode 100644 asn1c_defs/all-defs/WTID.c create mode 100644 asn1c_defs/all-defs/WTID.h create mode 100644 asn1c_defs/all-defs/WidebandCQI.c create mode 100644 asn1c_defs/all-defs/WidebandCQI.h create mode 100644 asn1c_defs/all-defs/WidebandCQICodeword1.c create mode 100644 asn1c_defs/all-defs/WidebandCQICodeword1.h create mode 100644 asn1c_defs/all-defs/X2AP-Message.c create mode 100644 asn1c_defs/all-defs/X2AP-Message.h create mode 100644 asn1c_defs/all-defs/X2AP-PDU.c create mode 100644 asn1c_defs/all-defs/X2AP-PDU.h create mode 100644 asn1c_defs/all-defs/X2APMessageTransfer.c create mode 100644 asn1c_defs/all-defs/X2APMessageTransfer.h create mode 100644 asn1c_defs/all-defs/X2BenefitValue.c create mode 100644 asn1c_defs/all-defs/X2BenefitValue.h create mode 100644 asn1c_defs/all-defs/X2InitiatingMessage.c create mode 100644 asn1c_defs/all-defs/X2InitiatingMessage.h create mode 100644 asn1c_defs/all-defs/X2Release.c create mode 100644 asn1c_defs/all-defs/X2Release.h create mode 100644 asn1c_defs/all-defs/X2RemovalFailure.c create mode 100644 asn1c_defs/all-defs/X2RemovalFailure.h create mode 100644 asn1c_defs/all-defs/X2RemovalRequest.c create mode 100644 asn1c_defs/all-defs/X2RemovalRequest.h create mode 100644 asn1c_defs/all-defs/X2RemovalResponse.c create mode 100644 asn1c_defs/all-defs/X2RemovalResponse.h create mode 100644 asn1c_defs/all-defs/X2SetupFailure.c create mode 100644 asn1c_defs/all-defs/X2SetupFailure.h create mode 100644 asn1c_defs/all-defs/X2SetupRequest.c create mode 100644 asn1c_defs/all-defs/X2SetupRequest.h create mode 100644 asn1c_defs/all-defs/X2SetupResponse.c create mode 100644 asn1c_defs/all-defs/X2SetupResponse.h create mode 100644 asn1c_defs/all-defs/X2SuccessfulOutcome.c create mode 100644 asn1c_defs/all-defs/X2SuccessfulOutcome.h create mode 100644 asn1c_defs/all-defs/X2UnsuccessfulOutcome.c create mode 100644 asn1c_defs/all-defs/X2UnsuccessfulOutcome.h create mode 100644 asn1c_defs/all-defs/asn_SEQUENCE_OF.c create mode 100644 asn1c_defs/all-defs/asn_SEQUENCE_OF.h create mode 100644 asn1c_defs/all-defs/asn_SET_OF.c create mode 100644 asn1c_defs/all-defs/asn_SET_OF.h create mode 100644 asn1c_defs/all-defs/asn_application.c create mode 100644 asn1c_defs/all-defs/asn_application.h create mode 100644 asn1c_defs/all-defs/asn_bit_data.c create mode 100644 asn1c_defs/all-defs/asn_bit_data.h create mode 100644 asn1c_defs/all-defs/asn_codecs.h create mode 100644 asn1c_defs/all-defs/asn_codecs_prim.c create mode 100644 asn1c_defs/all-defs/asn_codecs_prim.h create mode 100644 asn1c_defs/all-defs/asn_constant.h create mode 100644 asn1c_defs/all-defs/asn_internal.c create mode 100644 asn1c_defs/all-defs/asn_internal.h create mode 100644 asn1c_defs/all-defs/asn_ioc.h create mode 100644 asn1c_defs/all-defs/asn_random_fill.c create mode 100644 asn1c_defs/all-defs/asn_random_fill.h create mode 100644 asn1c_defs/all-defs/asn_system.h create mode 100644 asn1c_defs/all-defs/ber_decoder.c create mode 100644 asn1c_defs/all-defs/ber_decoder.h create mode 100644 asn1c_defs/all-defs/ber_tlv_length.c create mode 100644 asn1c_defs/all-defs/ber_tlv_length.h create mode 100644 asn1c_defs/all-defs/ber_tlv_tag.c create mode 100644 asn1c_defs/all-defs/ber_tlv_tag.h create mode 100644 asn1c_defs/all-defs/constr_CHOICE.c create mode 100644 asn1c_defs/all-defs/constr_CHOICE.h create mode 100644 asn1c_defs/all-defs/constr_SEQUENCE.c create mode 100644 asn1c_defs/all-defs/constr_SEQUENCE.h create mode 100644 asn1c_defs/all-defs/constr_SEQUENCE_OF.c create mode 100644 asn1c_defs/all-defs/constr_SEQUENCE_OF.h create mode 100644 asn1c_defs/all-defs/constr_SET_OF.c create mode 100644 asn1c_defs/all-defs/constr_SET_OF.h create mode 100644 asn1c_defs/all-defs/constr_TYPE.c create mode 100644 asn1c_defs/all-defs/constr_TYPE.h create mode 100644 asn1c_defs/all-defs/constraints.c create mode 100644 asn1c_defs/all-defs/constraints.h create mode 100644 asn1c_defs/all-defs/converter-example.mk create mode 100644 asn1c_defs/all-defs/der_encoder.c create mode 100644 asn1c_defs/all-defs/der_encoder.h create mode 100644 asn1c_defs/all-defs/per_decoder.c create mode 100644 asn1c_defs/all-defs/per_decoder.h create mode 100644 asn1c_defs/all-defs/per_encoder.c create mode 100644 asn1c_defs/all-defs/per_encoder.h create mode 100644 asn1c_defs/all-defs/per_opentype.c create mode 100644 asn1c_defs/all-defs/per_opentype.h create mode 100644 asn1c_defs/all-defs/per_support.c create mode 100644 asn1c_defs/all-defs/per_support.h create mode 100644 asn1c_defs/all-defs/xer_decoder.c create mode 100644 asn1c_defs/all-defs/xer_decoder.h create mode 100644 asn1c_defs/all-defs/xer_encoder.c create mode 100644 asn1c_defs/all-defs/xer_encoder.h create mode 100644 asn1c_defs/all-defs/xer_support.c create mode 100644 asn1c_defs/all-defs/xer_support.h create mode 100644 container-tag.yaml create mode 100644 init/admin_xapp_config.json create mode 100644 init/admin_xapp_config_schema.json create mode 100644 init/config-file.json create mode 100644 init/init_script.py create mode 100644 init/subscriptions.json create mode 100644 schemas/README.md create mode 100644 schemas/adm-ctrl-xapp-schema.json create mode 100644 schemas/samples.json create mode 100644 schemas/ves_schema.json create mode 100644 src/E2AP-c/e2ap_control.cc create mode 100644 src/E2AP-c/e2ap_control.hpp create mode 100644 src/E2AP-c/e2ap_control_helper.hpp create mode 100644 src/E2AP-c/e2ap_control_response.cc create mode 100644 src/E2AP-c/e2ap_control_response.hpp create mode 100644 src/E2AP-c/e2ap_indication.cc create mode 100644 src/E2AP-c/e2ap_indication.hpp create mode 100644 src/E2AP-c/subscription/generic_helpers.hpp create mode 100644 src/E2AP-c/subscription/response_helper.hpp create mode 100644 src/E2AP-c/subscription/subscription_delete_request.cc create mode 100644 src/E2AP-c/subscription/subscription_delete_request.hpp create mode 100644 src/E2AP-c/subscription/subscription_delete_response.cc create mode 100644 src/E2AP-c/subscription/subscription_delete_response.hpp create mode 100644 src/E2AP-c/subscription/subscription_handler.cc create mode 100644 src/E2AP-c/subscription/subscription_handler.hpp create mode 100644 src/E2AP-c/subscription/subscription_helper.hpp create mode 100644 src/E2AP-c/subscription/subscription_request.cc create mode 100644 src/E2AP-c/subscription/subscription_request.hpp create mode 100644 src/E2AP-c/subscription/subscription_response.cc create mode 100644 src/E2AP-c/subscription/subscription_response.hpp create mode 100644 src/E2SM/e2sm.cc create mode 100644 src/E2SM/e2sm.hpp create mode 100644 src/E2SM/e2sm_helpers.hpp create mode 100644 src/Makefile create mode 100644 src/README.md create mode 100644 src/X2AP/sgnb_addition_helpers.hpp create mode 100644 src/X2AP/sgnb_addition_request.cc create mode 100644 src/X2AP/sgnb_addition_request.hpp create mode 100644 src/X2AP/sgnb_addition_response.cc create mode 100644 src/X2AP/sgnb_addition_response.hpp create mode 100644 src/adm-ctrl-xapp.cc create mode 100644 src/adm-ctrl-xapp.hpp create mode 100644 src/curl/curl_interface.cc create mode 100644 src/curl/curl_interface.hpp create mode 100644 src/get_config.cc create mode 100644 src/json/json_handler.cc create mode 100644 src/json/json_handler.hpp create mode 100644 src/message_processor_class.cc create mode 100644 src/message_processor_class.hpp create mode 100644 src/plugin-interface/plugin-interface.cc create mode 100644 src/plugin-interface/plugin-interface.hpp create mode 100644 src/protector-plugin/NetworkProtector.cc create mode 100644 src/protector-plugin/NetworkProtector.h create mode 100644 src/protector-plugin/admission_policy.cc create mode 100644 src/protector-plugin/admission_policy.hpp create mode 100644 src/protector-plugin/sliding_window.cc create mode 100644 src/protector-plugin/sliding_window.hpp create mode 100755 src/run_xapp.sh create mode 100644 src/xapp_utils.cc create mode 100644 src/xapp_utils.hpp diff --git a/Dockerfile b/Dockerfile new file mode 100755 index 0000000..4a8fdd5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,114 @@ +ARG SCHEMA_PATH=schemas +ARG STAGE_DIR=/tmp/ac-xapp + +#================================================================================== +FROM nexus3.o-ran-sc.org:10004/bldr-ubuntu16-c-go:1-u16.04-nng1.1.1 as ricbuild + +# to override repo base, pass in repo argument when running docker build: +# docker build --build-arg REPOBASE=http://abc.def.org . .... +ARG REPOBASE=https://gerrit.oran-osc.org/r +ARG SCHEMA_FILE +ARG SCHEMA_PATH +ARG STAGE_DIR + +# Install necessary packages +WORKDIR ${STAGE_DIR} +RUN apt-get update \ + && apt-get install -y \ + libcurl4-openssl-dev \ + libcurl3 \ + cmake \ + git \ + build-essential \ + automake \ + autoconf-archive \ + autoconf \ + pkg-config \ + gawk \ + libtool \ + wget \ + zlib1g-dev \ + libffi-dev \ + && apt-get clean + +# Install mdclog using debian package hosted at packagecloud.io +ARG MDC_VER=0.0.3-1 +RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/master/packages/debian/stretch/mdclog_${MDC_VER}_amd64.deb/download.deb +RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/master/packages/debian/stretch/mdclog-dev_${MDC_VER}_amd64.deb/download.deb +RUN dpkg -i mdclog_${MDC_VER}_amd64.deb +RUN dpkg -i mdclog-dev_${MDC_VER}_amd64.deb + +# Install RMr using debian package hosted at packagecloud.io +ARG RMR_VER=1.3.0 +RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/staging/packages/debian/stretch/rmr_${RMR_VER}_amd64.deb/download.deb +RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/staging/packages/debian/stretch/rmr-dev_${RMR_VER}_amd64.deb/download.deb +RUN dpkg -i rmr_${RMR_VER}_amd64.deb +RUN dpkg -i rmr-dev_${RMR_VER}_amd64.deb + + +## Install rapidjson + #git checkout tags/v1.1.0 && \ +RUN git clone https://github.com/Tencent/rapidjson && \ + cd rapidjson && \ + mkdir build && \ + cd build && \ + cmake -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ + make install && \ + cd ${STAGE_DIR} && \ + rm -rf rapidjson + + +##----------------------------------- +# Now install the program +#------------------------------------ +COPY ./ ${STAGE_DIR} +RUN export CPATH=$CPATH:/usr/local/include && \ + cd src && \ + make clean && \ + make install + +COPY ${SCHEMA_PATH}/* /etc/xapp/ +COPY init/init_script.py /etc/xapp/init_script.py + +#--------------------------------------------- +# Build the final version +#FROM nexus3.o-ran-sc.org:10004/bldr-ubuntu16-c-go:1-u16.04-nng1.1.1 + +FROM ubuntu:16.04 + +ARG SCHEMA_PATH +ARG STAGE_DIR + +# copy just the needed libraries install it into the final image +COPY --from=ricbuild ${STAGE_DIR}/*.deb /tmp/ +COPY --from=ricbuild /usr/local/lib/libnng* /usr/local/lib/ +RUN dpkg -i /tmp/*.deb +RUN apt-get update && \ + apt-get install -y libcurl3 python3 && \ + apt-get clean +COPY --from=ricbuild /etc/xapp/* /etc/xapp/ +COPY --from=ricbuild /usr/local/bin/adm-ctrl-xapp /usr/local/bin/adm-ctrl-xapp +#COPY --from=ricbuild /usr/local/bin/e2e-test-client /usr/local/bin/e2e-test-client +#COPY --from=ricbuild /usr/local/bin/mock-e2term-server /usr/local/bin/mock-e2term-server +#COPY --from=ricbuild /usr/local/bin/e2e-perf-client /usr/local/bin/e2e-perf-client +#COPY --from=ricbuild /usr/local/bin/e2e-perf-server /usr/local/bin/e2e-perf-server +#COPY --from=ricbuild /usr/local/bin/mock-a1-server /usr/local/bin/mock-a1-server + + +RUN ldconfig + + +#ENV PYTHONHOME=/opt/python3 \ +# PYTHONPATH=/opt/python3 \ +ENV RMR_RTG_SVC="127.0.0.1" \ + NAME=ADM_CTRL_XAPP \ + PORT=tcp:4560 \ + THREADS=1\ + VERBOSE=0 \ + MESSAGE_TYPE=10002 \ + RATE=1 \ + CONFIG_FILE=/opt/ric/config/config-file.json + + + +CMD python3 /etc/xapp/init_script.py $CONFIG_FILE diff --git a/README.md b/README.md new file mode 100644 index 0000000..4a24a0b --- /dev/null +++ b/README.md @@ -0,0 +1,36 @@ +#================================================================================== + +# Copyright (c) 2018-2019 AT&T Intellectual Property. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#================================================================================== + +This repo contains code related to the admission control xapp. +Main source code for the xapp is under src/ + +Look at Dockerfile for building instructions + + +NOTE : In order to compile code as a stand alone process, following pre-requisites are required +-- For compilation, the nanomsg, nng and ric messaging libraries, as well as ric messaging header must be installed in standard paths (or if non-default, then visible in search paths) + +-- mdclog library and headers must be installed and available in search path + +NOTE: +In order to test the code, + +-- An E2 termination must be available + +-- A ves collector which collects metrics must be available + +The run_xapp.sh script provides a convenient way to set the various parameters and invoke the process (if not running in a docker container) diff --git a/asn1c_defs/all-defs/ABS-Status.c b/asn1c_defs/all-defs/ABS-Status.c new file mode 100644 index 0000000..468d452 --- /dev/null +++ b/asn1c_defs/all-defs/ABS-Status.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P106, + 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/asn1c_defs/all-defs/ABS-Status.h b/asn1c_defs/all-defs/ABS-Status.h new file mode 100644 index 0000000..c78a66b --- /dev/null +++ b/asn1c_defs/all-defs/ABS-Status.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ABS_Status_H_ +#define _ABS_Status_H_ + + +#include + +/* Including external dependencies */ +#include "DL-ABS-status.h" +#include "UsableABSInformation.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/ABSInformation.c b/asn1c_defs/all-defs/ABSInformation.c new file mode 100644 index 0000000..e098ad5 --- /dev/null +++ b/asn1c_defs/all-defs/ABSInformation.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ABSInformation.h" + +#include "ABSInformationFDD.h" +#include "ABSInformationTDD.h" +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) */ + { 0, &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/asn1c_defs/all-defs/ABSInformation.h b/asn1c_defs/all-defs/ABSInformation.h new file mode 100644 index 0000000..3a507e8 --- /dev/null +++ b/asn1c_defs/all-defs/ABSInformation.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ABSInformation_H_ +#define _ABSInformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ABSInformationFDD.c b/asn1c_defs/all-defs/ABSInformationFDD.c new file mode 100644 index 0000000..0436f95 --- /dev/null +++ b/asn1c_defs/all-defs/ABSInformationFDD.c @@ -0,0 +1,205 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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_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 */ + { 0, &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, + { 0, &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, + { 0, &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_8231P104, + 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/asn1c_defs/all-defs/ABSInformationFDD.h b/asn1c_defs/all-defs/ABSInformationFDD.h new file mode 100644 index 0000000..a566765 --- /dev/null +++ b/asn1c_defs/all-defs/ABSInformationFDD.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ABSInformationFDD_H_ +#define _ABSInformationFDD_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ABSInformationTDD.c b/asn1c_defs/all-defs/ABSInformationTDD.c new file mode 100644 index 0000000..6fc5977 --- /dev/null +++ b/asn1c_defs/all-defs/ABSInformationTDD.c @@ -0,0 +1,205 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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_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 */ + { 0, &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, + { 0, &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, + { 0, &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_8231P105, + 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/asn1c_defs/all-defs/ABSInformationTDD.h b/asn1c_defs/all-defs/ABSInformationTDD.h new file mode 100644 index 0000000..247ab53 --- /dev/null +++ b/asn1c_defs/all-defs/ABSInformationTDD.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ABSInformationTDD_H_ +#define _ABSInformationTDD_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ANY.c b/asn1c_defs/all-defs/ANY.c new file mode 100644 index 0000000..0b81557 --- /dev/null +++ b/asn1c_defs/all-defs/ANY.c @@ -0,0 +1,450 @@ +/* + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +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/asn1c_defs/all-defs/ANY.h b/asn1c_defs/all-defs/ANY.h new file mode 100644 index 0000000..b30381f --- /dev/null +++ b/asn1c_defs/all-defs/ANY.h @@ -0,0 +1,65 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_TYPE_ANY_H +#define ASN_TYPE_ANY_H + +#include /* 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/asn1c_defs/all-defs/AS-SecurityInformation.c b/asn1c_defs/all-defs/AS-SecurityInformation.c new file mode 100644 index 0000000..9a5e670 --- /dev/null +++ b/asn1c_defs/all-defs/AS-SecurityInformation.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P110, + 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/asn1c_defs/all-defs/AS-SecurityInformation.h b/asn1c_defs/all-defs/AS-SecurityInformation.h new file mode 100644 index 0000000..c6c407e --- /dev/null +++ b/asn1c_defs/all-defs/AS-SecurityInformation.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _AS_SecurityInformation_H_ +#define _AS_SecurityInformation_H_ + + +#include + +/* Including external dependencies */ +#include "Key-eNodeB-Star.h" +#include "NextHopChainingCount.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/ActionParameter-ID.c b/asn1c_defs/all-defs/ActionParameter-ID.c new file mode 100644 index 0000000..6aa1976 --- /dev/null +++ b/asn1c_defs/all-defs/ActionParameter-ID.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_ActionParameter_ID_constr_1, ActionParameter_ID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/ActionParameter-ID.h b/asn1c_defs/all-defs/ActionParameter-ID.h new file mode 100644 index 0000000..0562fa5 --- /dev/null +++ b/asn1c_defs/all-defs/ActionParameter-ID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ActionParameter_ID_H_ +#define _ActionParameter_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/ActionParameter-Item.c b/asn1c_defs/all-defs/ActionParameter-Item.c new file mode 100644 index 0000000..0bdb2b6 --- /dev/null +++ b/asn1c_defs/all-defs/ActionParameter-Item.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/ActionParameter-Item.h b/asn1c_defs/all-defs/ActionParameter-Item.h new file mode 100644 index 0000000..ee4202c --- /dev/null +++ b/asn1c_defs/all-defs/ActionParameter-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ActionParameter_Item_H_ +#define _ActionParameter_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ActionParameter-ID.h" +#include "ActionParameter-Value.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/ActionParameter-Value.c b/asn1c_defs/all-defs/ActionParameter-Value.c new file mode 100644 index 0000000..f2a3a4e --- /dev/null +++ b/asn1c_defs/all-defs/ActionParameter-Value.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ActionParameter-Value.h" + +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) */ + { 0, &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/asn1c_defs/all-defs/ActionParameter-Value.h b/asn1c_defs/all-defs/ActionParameter-Value.h new file mode 100644 index 0000000..b256085 --- /dev/null +++ b/asn1c_defs/all-defs/ActionParameter-Value.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ActionParameter_Value_H_ +#define _ActionParameter_Value_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ActivatedCellList-Item.c b/asn1c_defs/all-defs/ActivatedCellList-Item.c new file mode 100644 index 0000000..9ce934d --- /dev/null +++ b/asn1c_defs/all-defs/ActivatedCellList-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P15, + 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/asn1c_defs/all-defs/ActivatedCellList-Item.h b/asn1c_defs/all-defs/ActivatedCellList-Item.h new file mode 100644 index 0000000..add305c --- /dev/null +++ b/asn1c_defs/all-defs/ActivatedCellList-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ActivatedCellList_Item_H_ +#define _ActivatedCellList_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ECGI.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/ActivatedCellList.c b/asn1c_defs/all-defs/ActivatedCellList.c new file mode 100644 index 0000000..de933b4 --- /dev/null +++ b/asn1c_defs/all-defs/ActivatedCellList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ActivatedCellList.h" + +#include "ActivatedCellList-Item.h" +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 */ + { 0, &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/asn1c_defs/all-defs/ActivatedCellList.h b/asn1c_defs/all-defs/ActivatedCellList.h new file mode 100644 index 0000000..4d10ce2 --- /dev/null +++ b/asn1c_defs/all-defs/ActivatedCellList.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ActivatedCellList_H_ +#define _ActivatedCellList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ActivatedNRCellList-Item.c b/asn1c_defs/all-defs/ActivatedNRCellList-Item.c new file mode 100644 index 0000000..0ee680d --- /dev/null +++ b/asn1c_defs/all-defs/ActivatedNRCellList-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P102, + 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/asn1c_defs/all-defs/ActivatedNRCellList-Item.h b/asn1c_defs/all-defs/ActivatedNRCellList-Item.h new file mode 100644 index 0000000..fb52f7d --- /dev/null +++ b/asn1c_defs/all-defs/ActivatedNRCellList-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ActivatedNRCellList_Item_H_ +#define _ActivatedNRCellList_Item_H_ + + +#include + +/* Including external dependencies */ +#include "NRCGI.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/ActivatedNRCellList.c b/asn1c_defs/all-defs/ActivatedNRCellList.c new file mode 100644 index 0000000..379d2cc --- /dev/null +++ b/asn1c_defs/all-defs/ActivatedNRCellList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ActivatedNRCellList.h" + +#include "ActivatedNRCellList-Item.h" +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 */ + { 0, &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/asn1c_defs/all-defs/ActivatedNRCellList.h b/asn1c_defs/all-defs/ActivatedNRCellList.h new file mode 100644 index 0000000..e90005c --- /dev/null +++ b/asn1c_defs/all-defs/ActivatedNRCellList.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ActivatedNRCellList_H_ +#define _ActivatedNRCellList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ActivationID.c b/asn1c_defs/all-defs/ActivationID.c new file mode 100644 index 0000000..c1787ca --- /dev/null +++ b/asn1c_defs/all-defs/ActivationID.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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 */ + { 0, &asn_PER_type_ActivationID_constr_1, ActivationID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/ActivationID.h b/asn1c_defs/all-defs/ActivationID.h new file mode 100644 index 0000000..83664d7 --- /dev/null +++ b/asn1c_defs/all-defs/ActivationID.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ActivationID_H_ +#define _ActivationID_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/AdditionalSpecialSubframe-Info.c b/asn1c_defs/all-defs/AdditionalSpecialSubframe-Info.c new file mode 100644 index 0000000..a8fe947 --- /dev/null +++ b/asn1c_defs/all-defs/AdditionalSpecialSubframe-Info.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P107, + 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/asn1c_defs/all-defs/AdditionalSpecialSubframe-Info.h b/asn1c_defs/all-defs/AdditionalSpecialSubframe-Info.h new file mode 100644 index 0000000..17ef07a --- /dev/null +++ b/asn1c_defs/all-defs/AdditionalSpecialSubframe-Info.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _AdditionalSpecialSubframe_Info_H_ +#define _AdditionalSpecialSubframe_Info_H_ + + +#include + +/* Including external dependencies */ +#include "AdditionalSpecialSubframePatterns.h" +#include "CyclicPrefixDL.h" +#include "CyclicPrefixUL.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/AdditionalSpecialSubframeExtension-Info.c b/asn1c_defs/all-defs/AdditionalSpecialSubframeExtension-Info.c new file mode 100644 index 0000000..c631e2b --- /dev/null +++ b/asn1c_defs/all-defs/AdditionalSpecialSubframeExtension-Info.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P108, + 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/asn1c_defs/all-defs/AdditionalSpecialSubframeExtension-Info.h b/asn1c_defs/all-defs/AdditionalSpecialSubframeExtension-Info.h new file mode 100644 index 0000000..a323b4f --- /dev/null +++ b/asn1c_defs/all-defs/AdditionalSpecialSubframeExtension-Info.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _AdditionalSpecialSubframeExtension_Info_H_ +#define _AdditionalSpecialSubframeExtension_Info_H_ + + +#include + +/* Including external dependencies */ +#include "AdditionalSpecialSubframePatternsExtension.h" +#include "CyclicPrefixDL.h" +#include "CyclicPrefixUL.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/AdditionalSpecialSubframePatterns.c b/asn1c_defs/all-defs/AdditionalSpecialSubframePatterns.c new file mode 100644 index 0000000..b3aee09 --- /dev/null +++ b/asn1c_defs/all-defs/AdditionalSpecialSubframePatterns.c @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "AdditionalSpecialSubframePatterns.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_AdditionalSpecialSubframePatterns_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_AdditionalSpecialSubframePatterns_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/AdditionalSpecialSubframePatterns.h b/asn1c_defs/all-defs/AdditionalSpecialSubframePatterns.h new file mode 100644 index 0000000..b594e21 --- /dev/null +++ b/asn1c_defs/all-defs/AdditionalSpecialSubframePatterns.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _AdditionalSpecialSubframePatterns_H_ +#define _AdditionalSpecialSubframePatterns_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/AdditionalSpecialSubframePatternsExtension.c b/asn1c_defs/all-defs/AdditionalSpecialSubframePatternsExtension.c new file mode 100644 index 0000000..4363113 --- /dev/null +++ b/asn1c_defs/all-defs/AdditionalSpecialSubframePatternsExtension.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "AdditionalSpecialSubframePatternsExtension.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_AdditionalSpecialSubframePatternsExtension_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_AdditionalSpecialSubframePatternsExtension_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/AdditionalSpecialSubframePatternsExtension.h b/asn1c_defs/all-defs/AdditionalSpecialSubframePatternsExtension.h new file mode 100644 index 0000000..6a953d4 --- /dev/null +++ b/asn1c_defs/all-defs/AdditionalSpecialSubframePatternsExtension.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _AdditionalSpecialSubframePatternsExtension_H_ +#define _AdditionalSpecialSubframePatternsExtension_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/AerialUEsubscriptionInformation.c b/asn1c_defs/all-defs/AerialUEsubscriptionInformation.c new file mode 100644 index 0000000..75cdca5 --- /dev/null +++ b/asn1c_defs/all-defs/AerialUEsubscriptionInformation.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "AerialUEsubscriptionInformation.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_AerialUEsubscriptionInformation_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_AerialUEsubscriptionInformation_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/AerialUEsubscriptionInformation.h b/asn1c_defs/all-defs/AerialUEsubscriptionInformation.h new file mode 100644 index 0000000..398a052 --- /dev/null +++ b/asn1c_defs/all-defs/AerialUEsubscriptionInformation.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _AerialUEsubscriptionInformation_H_ +#define _AerialUEsubscriptionInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/AllocationAndRetentionPriority.c b/asn1c_defs/all-defs/AllocationAndRetentionPriority.c new file mode 100644 index 0000000..71d411a --- /dev/null +++ b/asn1c_defs/all-defs/AllocationAndRetentionPriority.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P109, + 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/asn1c_defs/all-defs/AllocationAndRetentionPriority.h b/asn1c_defs/all-defs/AllocationAndRetentionPriority.h new file mode 100644 index 0000000..c91441c --- /dev/null +++ b/asn1c_defs/all-defs/AllocationAndRetentionPriority.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _AllocationAndRetentionPriority_H_ +#define _AllocationAndRetentionPriority_H_ + + +#include + +/* Including external dependencies */ +#include "PriorityLevel.h" +#include "Pre-emptionCapability.h" +#include "Pre-emptionVulnerability.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/AreaScopeOfMDT.c b/asn1c_defs/all-defs/AreaScopeOfMDT.c new file mode 100644 index 0000000..143d30e --- /dev/null +++ b/asn1c_defs/all-defs/AreaScopeOfMDT.c @@ -0,0 +1,85 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "AreaScopeOfMDT.h" + +#include "CellBasedMDT.h" +#include "TABasedMDT.h" +#include "TAIBasedMDT.h" +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) */ + { 0, &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/asn1c_defs/all-defs/AreaScopeOfMDT.h b/asn1c_defs/all-defs/AreaScopeOfMDT.h new file mode 100644 index 0000000..c3bf17c --- /dev/null +++ b/asn1c_defs/all-defs/AreaScopeOfMDT.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _AreaScopeOfMDT_H_ +#define _AreaScopeOfMDT_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/AreaScopeOfQMC.c b/asn1c_defs/all-defs/AreaScopeOfQMC.c new file mode 100644 index 0000000..2fc441a --- /dev/null +++ b/asn1c_defs/all-defs/AreaScopeOfQMC.c @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "AreaScopeOfQMC.h" + +#include "CellBasedQMC.h" +#include "TABasedQMC.h" +#include "TAIBasedQMC.h" +#include "PLMNAreaBasedQMC.h" +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) */ + { 0, &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/asn1c_defs/all-defs/AreaScopeOfQMC.h b/asn1c_defs/all-defs/AreaScopeOfQMC.h new file mode 100644 index 0000000..46d6a92 --- /dev/null +++ b/asn1c_defs/all-defs/AreaScopeOfQMC.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _AreaScopeOfQMC_H_ +#define _AreaScopeOfQMC_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/BIT_STRING.c b/asn1c_defs/all-defs/BIT_STRING.c new file mode 100644 index 0000000..e8d7354 --- /dev/null +++ b/asn1c_defs/all-defs/BIT_STRING.c @@ -0,0 +1,656 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * 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("", 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/asn1c_defs/all-defs/BIT_STRING.h b/asn1c_defs/all-defs/BIT_STRING.h new file mode 100644 index 0000000..c1bdbbc --- /dev/null +++ b/asn1c_defs/all-defs/BIT_STRING.h @@ -0,0 +1,48 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _BIT_STRING_H_ +#define _BIT_STRING_H_ + +#include /* 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/asn1c_defs/all-defs/BOOLEAN.c b/asn1c_defs/all-defs/BOOLEAN.c new file mode 100644 index 0000000..25831e2 --- /dev/null +++ b/asn1c_defs/all-defs/BOOLEAN.c @@ -0,0 +1,492 @@ +/*- + * Copyright (c) 2003, 2005 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * 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: + /* "" */ + *st = 0; + break; + case XCT_UNKNOWN_BO: + if(xer_check_tag(chunk_buf, chunk_size, "true") + != XCT_BOTH) + return XPBD_BROKEN_ENCODING; + /* "" */ + *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("", 7); + } else { + ASN__CALLBACK("", 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 = ""; + 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/asn1c_defs/all-defs/BOOLEAN.h b/asn1c_defs/all-defs/BOOLEAN.h new file mode 100644 index 0000000..620acf7 --- /dev/null +++ b/asn1c_defs/all-defs/BOOLEAN.h @@ -0,0 +1,45 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _BOOLEAN_H_ +#define _BOOLEAN_H_ + +#include + +#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/asn1c_defs/all-defs/BandInfo.c b/asn1c_defs/all-defs/BandInfo.c new file mode 100644 index 0000000..53f13ef --- /dev/null +++ b/asn1c_defs/all-defs/BandInfo.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P169, + 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/asn1c_defs/all-defs/BandInfo.h b/asn1c_defs/all-defs/BandInfo.h new file mode 100644 index 0000000..9313d72 --- /dev/null +++ b/asn1c_defs/all-defs/BandInfo.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _BandInfo_H_ +#define _BandInfo_H_ + + +#include + +/* Including external dependencies */ +#include "FreqBandIndicator.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/BandwidthReducedSI.c b/asn1c_defs/all-defs/BandwidthReducedSI.c new file mode 100644 index 0000000..23c018a --- /dev/null +++ b/asn1c_defs/all-defs/BandwidthReducedSI.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "BandwidthReducedSI.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_BandwidthReducedSI_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BandwidthReducedSI_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/BandwidthReducedSI.h b/asn1c_defs/all-defs/BandwidthReducedSI.h new file mode 100644 index 0000000..43239d2 --- /dev/null +++ b/asn1c_defs/all-defs/BandwidthReducedSI.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _BandwidthReducedSI_H_ +#define _BandwidthReducedSI_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/BearerType.c b/asn1c_defs/all-defs/BearerType.c new file mode 100644 index 0000000..0b4ba1e --- /dev/null +++ b/asn1c_defs/all-defs/BearerType.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "BearerType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_BearerType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BearerType_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/BearerType.h b/asn1c_defs/all-defs/BearerType.h new file mode 100644 index 0000000..3e054d8 --- /dev/null +++ b/asn1c_defs/all-defs/BearerType.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _BearerType_H_ +#define _BearerType_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/BenefitMetric.c b/asn1c_defs/all-defs/BenefitMetric.c new file mode 100644 index 0000000..5fbbee4 --- /dev/null +++ b/asn1c_defs/all-defs/BenefitMetric.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_BenefitMetric_constr_1, BenefitMetric_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/BenefitMetric.h b/asn1c_defs/all-defs/BenefitMetric.h new file mode 100644 index 0000000..2ea4585 --- /dev/null +++ b/asn1c_defs/all-defs/BenefitMetric.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _BenefitMetric_H_ +#define _BenefitMetric_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/BitRate.c b/asn1c_defs/all-defs/BitRate.c new file mode 100644 index 0000000..e3c17e0 --- /dev/null +++ b/asn1c_defs/all-defs/BitRate.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_BitRate_constr_1, BitRate_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/BitRate.h b/asn1c_defs/all-defs/BitRate.h new file mode 100644 index 0000000..9c619f3 --- /dev/null +++ b/asn1c_defs/all-defs/BitRate.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _BitRate_H_ +#define _BitRate_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/BluetoothMeasConfig.c b/asn1c_defs/all-defs/BluetoothMeasConfig.c new file mode 100644 index 0000000..dd16be8 --- /dev/null +++ b/asn1c_defs/all-defs/BluetoothMeasConfig.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "BluetoothMeasConfig.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_BluetoothMeasConfig_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BluetoothMeasConfig_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/BluetoothMeasConfig.h b/asn1c_defs/all-defs/BluetoothMeasConfig.h new file mode 100644 index 0000000..51590bf --- /dev/null +++ b/asn1c_defs/all-defs/BluetoothMeasConfig.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _BluetoothMeasConfig_H_ +#define _BluetoothMeasConfig_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/BluetoothMeasConfigNameList.c b/asn1c_defs/all-defs/BluetoothMeasConfigNameList.c new file mode 100644 index 0000000..b0a76c9 --- /dev/null +++ b/asn1c_defs/all-defs/BluetoothMeasConfigNameList.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "BluetoothMeasConfigNameList.h" + +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 */ + { 0, &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/asn1c_defs/all-defs/BluetoothMeasConfigNameList.h b/asn1c_defs/all-defs/BluetoothMeasConfigNameList.h new file mode 100644 index 0000000..ae8a129 --- /dev/null +++ b/asn1c_defs/all-defs/BluetoothMeasConfigNameList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _BluetoothMeasConfigNameList_H_ +#define _BluetoothMeasConfigNameList_H_ + + +#include + +/* Including external dependencies */ +#include "BluetoothName.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/BluetoothMeasurementConfiguration.c b/asn1c_defs/all-defs/BluetoothMeasurementConfiguration.c new file mode 100644 index 0000000..fa16678 --- /dev/null +++ b/asn1c_defs/all-defs/BluetoothMeasurementConfiguration.c @@ -0,0 +1,130 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "BluetoothMeasurementConfiguration.h" + +#include "BluetoothMeasConfigNameList.h" +#include "ProtocolExtensionContainer.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &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_8231P111, + 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/asn1c_defs/all-defs/BluetoothMeasurementConfiguration.h b/asn1c_defs/all-defs/BluetoothMeasurementConfiguration.h new file mode 100644 index 0000000..561b309 --- /dev/null +++ b/asn1c_defs/all-defs/BluetoothMeasurementConfiguration.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _BluetoothMeasurementConfiguration_H_ +#define _BluetoothMeasurementConfiguration_H_ + + +#include + +/* Including external dependencies */ +#include "BluetoothMeasConfig.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/BluetoothName.c b/asn1c_defs/all-defs/BluetoothName.c new file mode 100644 index 0000000..3d8226c --- /dev/null +++ b/asn1c_defs/all-defs/BluetoothName.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_BluetoothName_constr_1, BluetoothName_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/BluetoothName.h b/asn1c_defs/all-defs/BluetoothName.h new file mode 100644 index 0000000..bb24d96 --- /dev/null +++ b/asn1c_defs/all-defs/BluetoothName.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _BluetoothName_H_ +#define _BluetoothName_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/BroadcastPLMNs-Item.c b/asn1c_defs/all-defs/BroadcastPLMNs-Item.c new file mode 100644 index 0000000..b392ca4 --- /dev/null +++ b/asn1c_defs/all-defs/BroadcastPLMNs-Item.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "BroadcastPLMNs-Item.h" + +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 */ + { 0, &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/asn1c_defs/all-defs/BroadcastPLMNs-Item.h b/asn1c_defs/all-defs/BroadcastPLMNs-Item.h new file mode 100644 index 0000000..e51840f --- /dev/null +++ b/asn1c_defs/all-defs/BroadcastPLMNs-Item.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _BroadcastPLMNs_Item_H_ +#define _BroadcastPLMNs_Item_H_ + + +#include + +/* Including external dependencies */ +#include "PLMN-Identity.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/CNTypeRestrictions.c b/asn1c_defs/all-defs/CNTypeRestrictions.c new file mode 100644 index 0000000..3a23c9e --- /dev/null +++ b/asn1c_defs/all-defs/CNTypeRestrictions.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "CNTypeRestrictions.h" + +#include "CNTypeRestrictionsItem.h" +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 */ + { 0, &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/asn1c_defs/all-defs/CNTypeRestrictions.h b/asn1c_defs/all-defs/CNTypeRestrictions.h new file mode 100644 index 0000000..f30244c --- /dev/null +++ b/asn1c_defs/all-defs/CNTypeRestrictions.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CNTypeRestrictions_H_ +#define _CNTypeRestrictions_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/CNTypeRestrictionsItem.c b/asn1c_defs/all-defs/CNTypeRestrictionsItem.c new file mode 100644 index 0000000..1e3a1c4 --- /dev/null +++ b/asn1c_defs/all-defs/CNTypeRestrictionsItem.c @@ -0,0 +1,119 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "CNTypeRestrictionsItem.h" + +#include "ProtocolExtensionContainer.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &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_8231P116, + 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/asn1c_defs/all-defs/CNTypeRestrictionsItem.h b/asn1c_defs/all-defs/CNTypeRestrictionsItem.h new file mode 100644 index 0000000..d31be0b --- /dev/null +++ b/asn1c_defs/all-defs/CNTypeRestrictionsItem.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CNTypeRestrictionsItem_H_ +#define _CNTypeRestrictionsItem_H_ + + +#include + +/* Including external dependencies */ +#include "PLMN-Identity.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/COUNTValueExtended.c b/asn1c_defs/all-defs/COUNTValueExtended.c new file mode 100644 index 0000000..a1fa3d4 --- /dev/null +++ b/asn1c_defs/all-defs/COUNTValueExtended.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P124, + 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/asn1c_defs/all-defs/COUNTValueExtended.h b/asn1c_defs/all-defs/COUNTValueExtended.h new file mode 100644 index 0000000..637fc74 --- /dev/null +++ b/asn1c_defs/all-defs/COUNTValueExtended.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _COUNTValueExtended_H_ +#define _COUNTValueExtended_H_ + + +#include + +/* Including external dependencies */ +#include "PDCP-SNExtended.h" +#include "HFNModified.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/COUNTvalue.c b/asn1c_defs/all-defs/COUNTvalue.c new file mode 100644 index 0000000..2ff08aa --- /dev/null +++ b/asn1c_defs/all-defs/COUNTvalue.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P123, + 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/asn1c_defs/all-defs/COUNTvalue.h b/asn1c_defs/all-defs/COUNTvalue.h new file mode 100644 index 0000000..fd10347 --- /dev/null +++ b/asn1c_defs/all-defs/COUNTvalue.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _COUNTvalue_H_ +#define _COUNTvalue_H_ + + +#include + +/* Including external dependencies */ +#include "PDCP-SN.h" +#include "HFN.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/COUNTvaluePDCP-SNlength18.c b/asn1c_defs/all-defs/COUNTvaluePDCP-SNlength18.c new file mode 100644 index 0000000..e000b0f --- /dev/null +++ b/asn1c_defs/all-defs/COUNTvaluePDCP-SNlength18.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P125, + 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/asn1c_defs/all-defs/COUNTvaluePDCP-SNlength18.h b/asn1c_defs/all-defs/COUNTvaluePDCP-SNlength18.h new file mode 100644 index 0000000..2242101 --- /dev/null +++ b/asn1c_defs/all-defs/COUNTvaluePDCP-SNlength18.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _COUNTvaluePDCP_SNlength18_H_ +#define _COUNTvaluePDCP_SNlength18_H_ + + +#include + +/* Including external dependencies */ +#include "PDCP-SNlength18.h" +#include "HFNforPDCP-SNlength18.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/CRNTI.c b/asn1c_defs/all-defs/CRNTI.c new file mode 100644 index 0000000..7edb000 --- /dev/null +++ b/asn1c_defs/all-defs/CRNTI.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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 */ + { 0, &asn_PER_type_CRNTI_constr_1, CRNTI_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/CRNTI.h b/asn1c_defs/all-defs/CRNTI.h new file mode 100644 index 0000000..9371cd3 --- /dev/null +++ b/asn1c_defs/all-defs/CRNTI.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CRNTI_H_ +#define _CRNTI_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/CSG-Id.c b/asn1c_defs/all-defs/CSG-Id.c new file mode 100644 index 0000000..5b59610 --- /dev/null +++ b/asn1c_defs/all-defs/CSG-Id.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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 */ + { 0, &asn_PER_type_CSG_Id_constr_1, CSG_Id_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/CSG-Id.h b/asn1c_defs/all-defs/CSG-Id.h new file mode 100644 index 0000000..d9cd761 --- /dev/null +++ b/asn1c_defs/all-defs/CSG-Id.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CSG_Id_H_ +#define _CSG_Id_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/CSGMembershipStatus.c b/asn1c_defs/all-defs/CSGMembershipStatus.c new file mode 100644 index 0000000..7eca359 --- /dev/null +++ b/asn1c_defs/all-defs/CSGMembershipStatus.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "CSGMembershipStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_CSGMembershipStatus_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CSGMembershipStatus_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/CSGMembershipStatus.h b/asn1c_defs/all-defs/CSGMembershipStatus.h new file mode 100644 index 0000000..c1ac6cd --- /dev/null +++ b/asn1c_defs/all-defs/CSGMembershipStatus.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CSGMembershipStatus_H_ +#define _CSGMembershipStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/CSIReportList.c b/asn1c_defs/all-defs/CSIReportList.c new file mode 100644 index 0000000..543589b --- /dev/null +++ b/asn1c_defs/all-defs/CSIReportList.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "CSIReportList.h" + +#include "ProtocolExtensionContainer.h" +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_8231P128, + 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 */ + { 0, &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/asn1c_defs/all-defs/CSIReportList.h b/asn1c_defs/all-defs/CSIReportList.h new file mode 100644 index 0000000..833d79f --- /dev/null +++ b/asn1c_defs/all-defs/CSIReportList.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CSIReportList_H_ +#define _CSIReportList_H_ + + +#include + +/* Including external dependencies */ +#include +#include "UEID.h" +#include "CSIReportPerCSIProcess.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/CSIReportPerCSIProcess.c b/asn1c_defs/all-defs/CSIReportPerCSIProcess.c new file mode 100644 index 0000000..56d8c20 --- /dev/null +++ b/asn1c_defs/all-defs/CSIReportPerCSIProcess.c @@ -0,0 +1,144 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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 */ +}; +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, + { 0, &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_8231P129, + 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 */ + { 0, &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/asn1c_defs/all-defs/CSIReportPerCSIProcess.h b/asn1c_defs/all-defs/CSIReportPerCSIProcess.h new file mode 100644 index 0000000..a81741e --- /dev/null +++ b/asn1c_defs/all-defs/CSIReportPerCSIProcess.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CSIReportPerCSIProcess_H_ +#define _CSIReportPerCSIProcess_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include "CSIReportPerCSIProcessItem.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/CSIReportPerCSIProcessItem.c b/asn1c_defs/all-defs/CSIReportPerCSIProcessItem.c new file mode 100644 index 0000000..2a5fb01 --- /dev/null +++ b/asn1c_defs/all-defs/CSIReportPerCSIProcessItem.c @@ -0,0 +1,165 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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 */ +}; +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, + { 0, &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_8231P130, + 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 */ + { 0, &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/asn1c_defs/all-defs/CSIReportPerCSIProcessItem.h b/asn1c_defs/all-defs/CSIReportPerCSIProcessItem.h new file mode 100644 index 0000000..d2616dc --- /dev/null +++ b/asn1c_defs/all-defs/CSIReportPerCSIProcessItem.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CSIReportPerCSIProcessItem_H_ +#define _CSIReportPerCSIProcessItem_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include "WidebandCQI.h" +#include "SubbandSize.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/CallProcess-ID.c b/asn1c_defs/all-defs/CallProcess-ID.c new file mode 100644 index 0000000..3d5b0e6 --- /dev/null +++ b/asn1c_defs/all-defs/CallProcess-ID.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/CallProcess-ID.h b/asn1c_defs/all-defs/CallProcess-ID.h new file mode 100644 index 0000000..9eaf9ba --- /dev/null +++ b/asn1c_defs/all-defs/CallProcess-ID.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CallProcess_ID_H_ +#define _CallProcess_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/CapacityValue.c b/asn1c_defs/all-defs/CapacityValue.c new file mode 100644 index 0000000..c8d533e --- /dev/null +++ b/asn1c_defs/all-defs/CapacityValue.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_CapacityValue_constr_1, CapacityValue_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/CapacityValue.h b/asn1c_defs/all-defs/CapacityValue.h new file mode 100644 index 0000000..7b7fdf5 --- /dev/null +++ b/asn1c_defs/all-defs/CapacityValue.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CapacityValue_H_ +#define _CapacityValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/Cause.c b/asn1c_defs/all-defs/Cause.c new file mode 100644 index 0000000..c3ce608 --- /dev/null +++ b/asn1c_defs/all-defs/Cause.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "Cause.h" + +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) */ + { 0, &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/asn1c_defs/all-defs/Cause.h b/asn1c_defs/all-defs/Cause.h new file mode 100644 index 0000000..1ed81e5 --- /dev/null +++ b/asn1c_defs/all-defs/Cause.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _Cause_H_ +#define _Cause_H_ + + +#include + +/* Including external dependencies */ +#include "CauseRadioNetwork.h" +#include "CauseTransport.h" +#include "CauseProtocol.h" +#include "CauseMisc.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/CauseMisc.c b/asn1c_defs/all-defs/CauseMisc.c new file mode 100644 index 0000000..961dbe6 --- /dev/null +++ b/asn1c_defs/all-defs/CauseMisc.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "CauseMisc.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_CauseMisc_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CauseMisc_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/CauseMisc.h b/asn1c_defs/all-defs/CauseMisc.h new file mode 100644 index 0000000..e2c421f --- /dev/null +++ b/asn1c_defs/all-defs/CauseMisc.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CauseMisc_H_ +#define _CauseMisc_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/CauseProtocol.c b/asn1c_defs/all-defs/CauseProtocol.c new file mode 100644 index 0000000..f7d1ad4 --- /dev/null +++ b/asn1c_defs/all-defs/CauseProtocol.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "CauseProtocol.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_CauseProtocol_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CauseProtocol_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/CauseProtocol.h b/asn1c_defs/all-defs/CauseProtocol.h new file mode 100644 index 0000000..a6501e3 --- /dev/null +++ b/asn1c_defs/all-defs/CauseProtocol.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CauseProtocol_H_ +#define _CauseProtocol_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/CauseRIC.c b/asn1c_defs/all-defs/CauseRIC.c new file mode 100644 index 0000000..9e18388 --- /dev/null +++ b/asn1c_defs/all-defs/CauseRIC.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "CauseRIC.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_CauseRIC_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CauseRIC_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/CauseRIC.h b/asn1c_defs/all-defs/CauseRIC.h new file mode 100644 index 0000000..19bc926 --- /dev/null +++ b/asn1c_defs/all-defs/CauseRIC.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CauseRIC_H_ +#define _CauseRIC_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/CauseRadioNetwork.c b/asn1c_defs/all-defs/CauseRadioNetwork.c new file mode 100644 index 0000000..39e44ec --- /dev/null +++ b/asn1c_defs/all-defs/CauseRadioNetwork.c @@ -0,0 +1,153 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "CauseRadioNetwork.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_CauseRadioNetwork_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CauseRadioNetwork_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/CauseRadioNetwork.h b/asn1c_defs/all-defs/CauseRadioNetwork.h new file mode 100644 index 0000000..f674d45 --- /dev/null +++ b/asn1c_defs/all-defs/CauseRadioNetwork.h @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CauseRadioNetwork_H_ +#define _CauseRadioNetwork_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/CauseTransport.c b/asn1c_defs/all-defs/CauseTransport.c new file mode 100644 index 0000000..955fcf8 --- /dev/null +++ b/asn1c_defs/all-defs/CauseTransport.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "CauseTransport.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_CauseTransport_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CauseTransport_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/CauseTransport.h b/asn1c_defs/all-defs/CauseTransport.h new file mode 100644 index 0000000..6464f5b --- /dev/null +++ b/asn1c_defs/all-defs/CauseTransport.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CauseTransport_H_ +#define _CauseTransport_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/Cell-Size.c b/asn1c_defs/all-defs/Cell-Size.c new file mode 100644 index 0000000..0972d73 --- /dev/null +++ b/asn1c_defs/all-defs/Cell-Size.c @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "Cell-Size.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_Cell_Size_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Cell_Size_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/Cell-Size.h b/asn1c_defs/all-defs/Cell-Size.h new file mode 100644 index 0000000..abbf6e6 --- /dev/null +++ b/asn1c_defs/all-defs/Cell-Size.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _Cell_Size_H_ +#define _Cell_Size_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/CellActivationFailure.c b/asn1c_defs/all-defs/CellActivationFailure.c new file mode 100644 index 0000000..c7f1ca5 --- /dev/null +++ b/asn1c_defs/all-defs/CellActivationFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P41, + 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/asn1c_defs/all-defs/CellActivationFailure.h b/asn1c_defs/all-defs/CellActivationFailure.h new file mode 100644 index 0000000..edeb893 --- /dev/null +++ b/asn1c_defs/all-defs/CellActivationFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CellActivationFailure_H_ +#define _CellActivationFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CellActivationFailure */ +typedef struct CellActivationFailure { + ProtocolIE_Container_8180P41_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 diff --git a/asn1c_defs/all-defs/CellActivationRequest.c b/asn1c_defs/all-defs/CellActivationRequest.c new file mode 100644 index 0000000..57a7624 --- /dev/null +++ b/asn1c_defs/all-defs/CellActivationRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P39, + 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/asn1c_defs/all-defs/CellActivationRequest.h b/asn1c_defs/all-defs/CellActivationRequest.h new file mode 100644 index 0000000..194bdb1 --- /dev/null +++ b/asn1c_defs/all-defs/CellActivationRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CellActivationRequest_H_ +#define _CellActivationRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CellActivationRequest */ +typedef struct CellActivationRequest { + ProtocolIE_Container_8180P39_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 diff --git a/asn1c_defs/all-defs/CellActivationResponse.c b/asn1c_defs/all-defs/CellActivationResponse.c new file mode 100644 index 0000000..13ae00c --- /dev/null +++ b/asn1c_defs/all-defs/CellActivationResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P40, + 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/asn1c_defs/all-defs/CellActivationResponse.h b/asn1c_defs/all-defs/CellActivationResponse.h new file mode 100644 index 0000000..9b0ee83 --- /dev/null +++ b/asn1c_defs/all-defs/CellActivationResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CellActivationResponse_H_ +#define _CellActivationResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CellActivationResponse */ +typedef struct CellActivationResponse { + ProtocolIE_Container_8180P40_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 diff --git a/asn1c_defs/all-defs/CellAssistanceInformation.c b/asn1c_defs/all-defs/CellAssistanceInformation.c new file mode 100644 index 0000000..db58233 --- /dev/null +++ b/asn1c_defs/all-defs/CellAssistanceInformation.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "CellAssistanceInformation.h" + +#include "Limited-list.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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_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 */ + { 0, &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) */ + { 0, &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/asn1c_defs/all-defs/CellAssistanceInformation.h b/asn1c_defs/all-defs/CellAssistanceInformation.h new file mode 100644 index 0000000..320d39c --- /dev/null +++ b/asn1c_defs/all-defs/CellAssistanceInformation.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CellAssistanceInformation_H_ +#define _CellAssistanceInformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/CellBasedMDT.c b/asn1c_defs/all-defs/CellBasedMDT.c new file mode 100644 index 0000000..f015bb4 --- /dev/null +++ b/asn1c_defs/all-defs/CellBasedMDT.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P112, + 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/asn1c_defs/all-defs/CellBasedMDT.h b/asn1c_defs/all-defs/CellBasedMDT.h new file mode 100644 index 0000000..0fe49f0 --- /dev/null +++ b/asn1c_defs/all-defs/CellBasedMDT.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CellBasedMDT_H_ +#define _CellBasedMDT_H_ + + +#include + +/* Including external dependencies */ +#include "CellIdListforMDT.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/CellBasedQMC.c b/asn1c_defs/all-defs/CellBasedQMC.c new file mode 100644 index 0000000..df32820 --- /dev/null +++ b/asn1c_defs/all-defs/CellBasedQMC.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P113, + 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/asn1c_defs/all-defs/CellBasedQMC.h b/asn1c_defs/all-defs/CellBasedQMC.h new file mode 100644 index 0000000..398bbdc --- /dev/null +++ b/asn1c_defs/all-defs/CellBasedQMC.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CellBasedQMC_H_ +#define _CellBasedQMC_H_ + + +#include + +/* Including external dependencies */ +#include "CellIdListforQMC.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/CellCapacityClassValue.c b/asn1c_defs/all-defs/CellCapacityClassValue.c new file mode 100644 index 0000000..652878d --- /dev/null +++ b/asn1c_defs/all-defs/CellCapacityClassValue.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_CellCapacityClassValue_constr_1, CellCapacityClassValue_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/CellCapacityClassValue.h b/asn1c_defs/all-defs/CellCapacityClassValue.h new file mode 100644 index 0000000..e4a4b1d --- /dev/null +++ b/asn1c_defs/all-defs/CellCapacityClassValue.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CellCapacityClassValue_H_ +#define _CellCapacityClassValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/CellDeploymentStatusIndicator.c b/asn1c_defs/all-defs/CellDeploymentStatusIndicator.c new file mode 100644 index 0000000..43f4aaf --- /dev/null +++ b/asn1c_defs/all-defs/CellDeploymentStatusIndicator.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "CellDeploymentStatusIndicator.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_CellDeploymentStatusIndicator_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CellDeploymentStatusIndicator_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/CellDeploymentStatusIndicator.h b/asn1c_defs/all-defs/CellDeploymentStatusIndicator.h new file mode 100644 index 0000000..4837163 --- /dev/null +++ b/asn1c_defs/all-defs/CellDeploymentStatusIndicator.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CellDeploymentStatusIndicator_H_ +#define _CellDeploymentStatusIndicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/CellIdListforMDT.c b/asn1c_defs/all-defs/CellIdListforMDT.c new file mode 100644 index 0000000..20cd79b --- /dev/null +++ b/asn1c_defs/all-defs/CellIdListforMDT.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "CellIdListforMDT.h" + +#include "ECGI.h" +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 */ + { 0, &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/asn1c_defs/all-defs/CellIdListforMDT.h b/asn1c_defs/all-defs/CellIdListforMDT.h new file mode 100644 index 0000000..4245815 --- /dev/null +++ b/asn1c_defs/all-defs/CellIdListforMDT.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CellIdListforMDT_H_ +#define _CellIdListforMDT_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/CellIdListforQMC.c b/asn1c_defs/all-defs/CellIdListforQMC.c new file mode 100644 index 0000000..71a0bdb --- /dev/null +++ b/asn1c_defs/all-defs/CellIdListforQMC.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "CellIdListforQMC.h" + +#include "ECGI.h" +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 */ + { 0, &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/asn1c_defs/all-defs/CellIdListforQMC.h b/asn1c_defs/all-defs/CellIdListforQMC.h new file mode 100644 index 0000000..28da045 --- /dev/null +++ b/asn1c_defs/all-defs/CellIdListforQMC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CellIdListforQMC_H_ +#define _CellIdListforQMC_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/CellInformation-Item.c b/asn1c_defs/all-defs/CellInformation-Item.c new file mode 100644 index 0000000..67a03a7 --- /dev/null +++ b/asn1c_defs/all-defs/CellInformation-Item.c @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P7, + 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/asn1c_defs/all-defs/CellInformation-Item.h b/asn1c_defs/all-defs/CellInformation-Item.h new file mode 100644 index 0000000..e71c01d --- /dev/null +++ b/asn1c_defs/all-defs/CellInformation-Item.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CellInformation_Item_H_ +#define _CellInformation_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ECGI.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/CellInformation-List.c b/asn1c_defs/all-defs/CellInformation-List.c new file mode 100644 index 0000000..5947963 --- /dev/null +++ b/asn1c_defs/all-defs/CellInformation-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "CellInformation-List.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P9, + 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 */ + { 0, &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/asn1c_defs/all-defs/CellInformation-List.h b/asn1c_defs/all-defs/CellInformation-List.h new file mode 100644 index 0000000..7514e40 --- /dev/null +++ b/asn1c_defs/all-defs/CellInformation-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CellInformation_List_H_ +#define _CellInformation_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/CellMeasurementResult-Item.c b/asn1c_defs/all-defs/CellMeasurementResult-Item.c new file mode 100644 index 0000000..49c2761 --- /dev/null +++ b/asn1c_defs/all-defs/CellMeasurementResult-Item.c @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P13, + 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/asn1c_defs/all-defs/CellMeasurementResult-Item.h b/asn1c_defs/all-defs/CellMeasurementResult-Item.h new file mode 100644 index 0000000..25f5ced --- /dev/null +++ b/asn1c_defs/all-defs/CellMeasurementResult-Item.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CellMeasurementResult_Item_H_ +#define _CellMeasurementResult_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ECGI.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/CellMeasurementResult-List.c b/asn1c_defs/all-defs/CellMeasurementResult-List.c new file mode 100644 index 0000000..5ad9f59 --- /dev/null +++ b/asn1c_defs/all-defs/CellMeasurementResult-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "CellMeasurementResult-List.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P14, + 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 */ + { 0, &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/asn1c_defs/all-defs/CellMeasurementResult-List.h b/asn1c_defs/all-defs/CellMeasurementResult-List.h new file mode 100644 index 0000000..27587f4 --- /dev/null +++ b/asn1c_defs/all-defs/CellMeasurementResult-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CellMeasurementResult_List_H_ +#define _CellMeasurementResult_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/CellReplacingInfo.c b/asn1c_defs/all-defs/CellReplacingInfo.c new file mode 100644 index 0000000..f1bb74a --- /dev/null +++ b/asn1c_defs/all-defs/CellReplacingInfo.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P114, + 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/asn1c_defs/all-defs/CellReplacingInfo.h b/asn1c_defs/all-defs/CellReplacingInfo.h new file mode 100644 index 0000000..2c07d2f --- /dev/null +++ b/asn1c_defs/all-defs/CellReplacingInfo.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CellReplacingInfo_H_ +#define _CellReplacingInfo_H_ + + +#include + +/* Including external dependencies */ +#include "ReplacingCellsList.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/CellReportingIndicator.c b/asn1c_defs/all-defs/CellReportingIndicator.c new file mode 100644 index 0000000..0d16eb3 --- /dev/null +++ b/asn1c_defs/all-defs/CellReportingIndicator.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "CellReportingIndicator.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_CellReportingIndicator_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CellReportingIndicator_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/CellReportingIndicator.h b/asn1c_defs/all-defs/CellReportingIndicator.h new file mode 100644 index 0000000..4b0239a --- /dev/null +++ b/asn1c_defs/all-defs/CellReportingIndicator.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CellReportingIndicator_H_ +#define _CellReportingIndicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/CellToReport-Item.c b/asn1c_defs/all-defs/CellToReport-Item.c new file mode 100644 index 0000000..0cd9e5b --- /dev/null +++ b/asn1c_defs/all-defs/CellToReport-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P9, + 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/asn1c_defs/all-defs/CellToReport-Item.h b/asn1c_defs/all-defs/CellToReport-Item.h new file mode 100644 index 0000000..fd0daa0 --- /dev/null +++ b/asn1c_defs/all-defs/CellToReport-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CellToReport_Item_H_ +#define _CellToReport_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ECGI.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/CellToReport-List.c b/asn1c_defs/all-defs/CellToReport-List.c new file mode 100644 index 0000000..abb3c40 --- /dev/null +++ b/asn1c_defs/all-defs/CellToReport-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "CellToReport-List.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P10, + 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 */ + { 0, &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/asn1c_defs/all-defs/CellToReport-List.h b/asn1c_defs/all-defs/CellToReport-List.h new file mode 100644 index 0000000..c1f75fb --- /dev/null +++ b/asn1c_defs/all-defs/CellToReport-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CellToReport_List_H_ +#define _CellToReport_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/CellType.c b/asn1c_defs/all-defs/CellType.c new file mode 100644 index 0000000..147b856 --- /dev/null +++ b/asn1c_defs/all-defs/CellType.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P115, + 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/asn1c_defs/all-defs/CellType.h b/asn1c_defs/all-defs/CellType.h new file mode 100644 index 0000000..25dc641 --- /dev/null +++ b/asn1c_defs/all-defs/CellType.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CellType_H_ +#define _CellType_H_ + + +#include + +/* Including external dependencies */ +#include "Cell-Size.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/CoMPHypothesisSet.c b/asn1c_defs/all-defs/CoMPHypothesisSet.c new file mode 100644 index 0000000..001f072 --- /dev/null +++ b/asn1c_defs/all-defs/CoMPHypothesisSet.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "CoMPHypothesisSet.h" + +#include "CoMPHypothesisSetItem.h" +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 */ + { 0, &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/asn1c_defs/all-defs/CoMPHypothesisSet.h b/asn1c_defs/all-defs/CoMPHypothesisSet.h new file mode 100644 index 0000000..33a882b --- /dev/null +++ b/asn1c_defs/all-defs/CoMPHypothesisSet.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CoMPHypothesisSet_H_ +#define _CoMPHypothesisSet_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/CoMPHypothesisSetItem.c b/asn1c_defs/all-defs/CoMPHypothesisSetItem.c new file mode 100644 index 0000000..26fc578 --- /dev/null +++ b/asn1c_defs/all-defs/CoMPHypothesisSetItem.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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, + { 0, &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_8231P117, + 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/asn1c_defs/all-defs/CoMPHypothesisSetItem.h b/asn1c_defs/all-defs/CoMPHypothesisSetItem.h new file mode 100644 index 0000000..301f1c3 --- /dev/null +++ b/asn1c_defs/all-defs/CoMPHypothesisSetItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CoMPHypothesisSetItem_H_ +#define _CoMPHypothesisSetItem_H_ + + +#include + +/* Including external dependencies */ +#include "ECGI.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/CoMPInformation.c b/asn1c_defs/all-defs/CoMPInformation.c new file mode 100644 index 0000000..fa636ca --- /dev/null +++ b/asn1c_defs/all-defs/CoMPInformation.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P118, + 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/asn1c_defs/all-defs/CoMPInformation.h b/asn1c_defs/all-defs/CoMPInformation.h new file mode 100644 index 0000000..e45a785 --- /dev/null +++ b/asn1c_defs/all-defs/CoMPInformation.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CoMPInformation_H_ +#define _CoMPInformation_H_ + + +#include + +/* Including external dependencies */ +#include "CoMPInformationItem.h" +#include "CoMPInformationStartTime.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/CoMPInformationItem.c b/asn1c_defs/all-defs/CoMPInformationItem.c new file mode 100644 index 0000000..a66f603 --- /dev/null +++ b/asn1c_defs/all-defs/CoMPInformationItem.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "CoMPInformationItem.h" + +#include "ProtocolExtensionContainer.h" +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_8231P119, + 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 */ + { 0, &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/asn1c_defs/all-defs/CoMPInformationItem.h b/asn1c_defs/all-defs/CoMPInformationItem.h new file mode 100644 index 0000000..72d6b77 --- /dev/null +++ b/asn1c_defs/all-defs/CoMPInformationItem.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CoMPInformationItem_H_ +#define _CoMPInformationItem_H_ + + +#include + +/* Including external dependencies */ +#include +#include "CoMPHypothesisSet.h" +#include "BenefitMetric.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/CoMPInformationStartTime.c b/asn1c_defs/all-defs/CoMPInformationStartTime.c new file mode 100644 index 0000000..5fad4d6 --- /dev/null +++ b/asn1c_defs/all-defs/CoMPInformationStartTime.c @@ -0,0 +1,174 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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 */ +}; +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, + { 0, &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, + { 0, &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_8231P120, + 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 */ + { 0, &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/asn1c_defs/all-defs/CoMPInformationStartTime.h b/asn1c_defs/all-defs/CoMPInformationStartTime.h new file mode 100644 index 0000000..b0585d9 --- /dev/null +++ b/asn1c_defs/all-defs/CoMPInformationStartTime.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CoMPInformationStartTime_H_ +#define _CoMPInformationStartTime_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/CompleteFailureCauseInformation-Item.c b/asn1c_defs/all-defs/CompleteFailureCauseInformation-Item.c new file mode 100644 index 0000000..1c16170 --- /dev/null +++ b/asn1c_defs/all-defs/CompleteFailureCauseInformation-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P12, + 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/asn1c_defs/all-defs/CompleteFailureCauseInformation-Item.h b/asn1c_defs/all-defs/CompleteFailureCauseInformation-Item.h new file mode 100644 index 0000000..efe967d --- /dev/null +++ b/asn1c_defs/all-defs/CompleteFailureCauseInformation-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CompleteFailureCauseInformation_Item_H_ +#define _CompleteFailureCauseInformation_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ECGI.h" +#include "MeasurementFailureCause-List.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/CompleteFailureCauseInformation-List.c b/asn1c_defs/all-defs/CompleteFailureCauseInformation-List.c new file mode 100644 index 0000000..acff9a5 --- /dev/null +++ b/asn1c_defs/all-defs/CompleteFailureCauseInformation-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "CompleteFailureCauseInformation-List.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P13, + 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 */ + { 0, &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/asn1c_defs/all-defs/CompleteFailureCauseInformation-List.h b/asn1c_defs/all-defs/CompleteFailureCauseInformation-List.h new file mode 100644 index 0000000..b18ffc5 --- /dev/null +++ b/asn1c_defs/all-defs/CompleteFailureCauseInformation-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CompleteFailureCauseInformation_List_H_ +#define _CompleteFailureCauseInformation_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/CompositeAvailableCapacity.c b/asn1c_defs/all-defs/CompositeAvailableCapacity.c new file mode 100644 index 0000000..c32ea3a --- /dev/null +++ b/asn1c_defs/all-defs/CompositeAvailableCapacity.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P121, + 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/asn1c_defs/all-defs/CompositeAvailableCapacity.h b/asn1c_defs/all-defs/CompositeAvailableCapacity.h new file mode 100644 index 0000000..e85f7e9 --- /dev/null +++ b/asn1c_defs/all-defs/CompositeAvailableCapacity.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CompositeAvailableCapacity_H_ +#define _CompositeAvailableCapacity_H_ + + +#include + +/* Including external dependencies */ +#include "CellCapacityClassValue.h" +#include "CapacityValue.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/CompositeAvailableCapacityGroup.c b/asn1c_defs/all-defs/CompositeAvailableCapacityGroup.c new file mode 100644 index 0000000..d4972ef --- /dev/null +++ b/asn1c_defs/all-defs/CompositeAvailableCapacityGroup.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P122, + 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/asn1c_defs/all-defs/CompositeAvailableCapacityGroup.h b/asn1c_defs/all-defs/CompositeAvailableCapacityGroup.h new file mode 100644 index 0000000..8e8f3f1 --- /dev/null +++ b/asn1c_defs/all-defs/CompositeAvailableCapacityGroup.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CompositeAvailableCapacityGroup_H_ +#define _CompositeAvailableCapacityGroup_H_ + + +#include + +/* Including external dependencies */ +#include "CompositeAvailableCapacity.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/Correlation-ID.c b/asn1c_defs/all-defs/Correlation-ID.c new file mode 100644 index 0000000..57f5624 --- /dev/null +++ b/asn1c_defs/all-defs/Correlation-ID.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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 */ + { 0, &asn_PER_type_Correlation_ID_constr_1, Correlation_ID_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/Correlation-ID.h b/asn1c_defs/all-defs/Correlation-ID.h new file mode 100644 index 0000000..f48bf1b --- /dev/null +++ b/asn1c_defs/all-defs/Correlation-ID.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _Correlation_ID_H_ +#define _Correlation_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/CoverageModification-Item.c b/asn1c_defs/all-defs/CoverageModification-Item.c new file mode 100644 index 0000000..c57752f --- /dev/null +++ b/asn1c_defs/all-defs/CoverageModification-Item.c @@ -0,0 +1,113 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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, + { 0, &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/asn1c_defs/all-defs/CoverageModification-Item.h b/asn1c_defs/all-defs/CoverageModification-Item.h new file mode 100644 index 0000000..985714f --- /dev/null +++ b/asn1c_defs/all-defs/CoverageModification-Item.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CoverageModification_Item_H_ +#define _CoverageModification_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ECGI.h" +#include +#include "CellDeploymentStatusIndicator.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/CoverageModificationList.c b/asn1c_defs/all-defs/CoverageModificationList.c new file mode 100644 index 0000000..acdeebc --- /dev/null +++ b/asn1c_defs/all-defs/CoverageModificationList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "CoverageModificationList.h" + +#include "CoverageModification-Item.h" +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 */ + { 0, &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/asn1c_defs/all-defs/CoverageModificationList.h b/asn1c_defs/all-defs/CoverageModificationList.h new file mode 100644 index 0000000..b6e3404 --- /dev/null +++ b/asn1c_defs/all-defs/CoverageModificationList.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CoverageModificationList_H_ +#define _CoverageModificationList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/Criticality.c b/asn1c_defs/all-defs/Criticality.c new file mode 100644 index 0000000..071d614 --- /dev/null +++ b/asn1c_defs/all-defs/Criticality.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-CommonDataTypes" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "Criticality.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_Criticality_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Criticality_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/Criticality.h b/asn1c_defs/all-defs/Criticality.h new file mode 100644 index 0000000..0418a34 --- /dev/null +++ b/asn1c_defs/all-defs/Criticality.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-CommonDataTypes" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _Criticality_H_ +#define _Criticality_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/CriticalityDiagnostics-IE-List.c b/asn1c_defs/all-defs/CriticalityDiagnostics-IE-List.c new file mode 100644 index 0000000..66bf7ca --- /dev/null +++ b/asn1c_defs/all-defs/CriticalityDiagnostics-IE-List.c @@ -0,0 +1,124 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "CriticalityDiagnostics-IE-List.h" + +#include "ProtocolExtensionContainer.h" +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_8231P127, + 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 */ + { 0, &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/asn1c_defs/all-defs/CriticalityDiagnostics-IE-List.h b/asn1c_defs/all-defs/CriticalityDiagnostics-IE-List.h new file mode 100644 index 0000000..eba7a11 --- /dev/null +++ b/asn1c_defs/all-defs/CriticalityDiagnostics-IE-List.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CriticalityDiagnostics_IE_List_H_ +#define _CriticalityDiagnostics_IE_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include "Criticality.h" +#include "ProtocolIE-ID.h" +#include "TypeOfError.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/CriticalityDiagnostics.c b/asn1c_defs/all-defs/CriticalityDiagnostics.c new file mode 100644 index 0000000..11da088 --- /dev/null +++ b/asn1c_defs/all-defs/CriticalityDiagnostics.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P126, + 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/asn1c_defs/all-defs/CriticalityDiagnostics.h b/asn1c_defs/all-defs/CriticalityDiagnostics.h new file mode 100644 index 0000000..439c94e --- /dev/null +++ b/asn1c_defs/all-defs/CriticalityDiagnostics.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CriticalityDiagnostics_H_ +#define _CriticalityDiagnostics_H_ + + +#include + +/* Including external dependencies */ +#include "ProcedureCode.h" +#include "TriggeringMessage.h" +#include "Criticality.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/CyclicPrefixDL.c b/asn1c_defs/all-defs/CyclicPrefixDL.c new file mode 100644 index 0000000..49d4d37 --- /dev/null +++ b/asn1c_defs/all-defs/CyclicPrefixDL.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "CyclicPrefixDL.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_CyclicPrefixDL_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CyclicPrefixDL_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/CyclicPrefixDL.h b/asn1c_defs/all-defs/CyclicPrefixDL.h new file mode 100644 index 0000000..055ce3e --- /dev/null +++ b/asn1c_defs/all-defs/CyclicPrefixDL.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CyclicPrefixDL_H_ +#define _CyclicPrefixDL_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/CyclicPrefixUL.c b/asn1c_defs/all-defs/CyclicPrefixUL.c new file mode 100644 index 0000000..fd5a328 --- /dev/null +++ b/asn1c_defs/all-defs/CyclicPrefixUL.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "CyclicPrefixUL.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_CyclicPrefixUL_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CyclicPrefixUL_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/CyclicPrefixUL.h b/asn1c_defs/all-defs/CyclicPrefixUL.h new file mode 100644 index 0000000..af6c67d --- /dev/null +++ b/asn1c_defs/all-defs/CyclicPrefixUL.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _CyclicPrefixUL_H_ +#define _CyclicPrefixUL_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/DL-ABS-status.c b/asn1c_defs/all-defs/DL-ABS-status.c new file mode 100644 index 0000000..c5395f0 --- /dev/null +++ b/asn1c_defs/all-defs/DL-ABS-status.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_DL_ABS_status_constr_1, DL_ABS_status_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/DL-ABS-status.h b/asn1c_defs/all-defs/DL-ABS-status.h new file mode 100644 index 0000000..af4402e --- /dev/null +++ b/asn1c_defs/all-defs/DL-ABS-status.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _DL_ABS_status_H_ +#define _DL_ABS_status_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/DL-Forwarding.c b/asn1c_defs/all-defs/DL-Forwarding.c new file mode 100644 index 0000000..2da9475 --- /dev/null +++ b/asn1c_defs/all-defs/DL-Forwarding.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "DL-Forwarding.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_DL_Forwarding_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DL_Forwarding_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/DL-Forwarding.h b/asn1c_defs/all-defs/DL-Forwarding.h new file mode 100644 index 0000000..9c7c74c --- /dev/null +++ b/asn1c_defs/all-defs/DL-Forwarding.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _DL_Forwarding_H_ +#define _DL_Forwarding_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/DL-GBR-PRB-usage.c b/asn1c_defs/all-defs/DL-GBR-PRB-usage.c new file mode 100644 index 0000000..9f99d00 --- /dev/null +++ b/asn1c_defs/all-defs/DL-GBR-PRB-usage.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_DL_GBR_PRB_usage_constr_1, DL_GBR_PRB_usage_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/DL-GBR-PRB-usage.h b/asn1c_defs/all-defs/DL-GBR-PRB-usage.h new file mode 100644 index 0000000..16111c8 --- /dev/null +++ b/asn1c_defs/all-defs/DL-GBR-PRB-usage.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _DL_GBR_PRB_usage_H_ +#define _DL_GBR_PRB_usage_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/DL-Total-PRB-usage.c b/asn1c_defs/all-defs/DL-Total-PRB-usage.c new file mode 100644 index 0000000..1ddd5d6 --- /dev/null +++ b/asn1c_defs/all-defs/DL-Total-PRB-usage.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_DL_Total_PRB_usage_constr_1, DL_Total_PRB_usage_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/DL-Total-PRB-usage.h b/asn1c_defs/all-defs/DL-Total-PRB-usage.h new file mode 100644 index 0000000..12708bb --- /dev/null +++ b/asn1c_defs/all-defs/DL-Total-PRB-usage.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _DL_Total_PRB_usage_H_ +#define _DL_Total_PRB_usage_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/DL-non-GBR-PRB-usage.c b/asn1c_defs/all-defs/DL-non-GBR-PRB-usage.c new file mode 100644 index 0000000..b1c3081 --- /dev/null +++ b/asn1c_defs/all-defs/DL-non-GBR-PRB-usage.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &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/asn1c_defs/all-defs/DL-non-GBR-PRB-usage.h b/asn1c_defs/all-defs/DL-non-GBR-PRB-usage.h new file mode 100644 index 0000000..f6b62cc --- /dev/null +++ b/asn1c_defs/all-defs/DL-non-GBR-PRB-usage.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _DL_non_GBR_PRB_usage_H_ +#define _DL_non_GBR_PRB_usage_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/DL-scheduling-PDCCH-CCE-usage.c b/asn1c_defs/all-defs/DL-scheduling-PDCCH-CCE-usage.c new file mode 100644 index 0000000..8e5f055 --- /dev/null +++ b/asn1c_defs/all-defs/DL-scheduling-PDCCH-CCE-usage.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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 */ + { 0, &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/asn1c_defs/all-defs/DL-scheduling-PDCCH-CCE-usage.h b/asn1c_defs/all-defs/DL-scheduling-PDCCH-CCE-usage.h new file mode 100644 index 0000000..34e818e --- /dev/null +++ b/asn1c_defs/all-defs/DL-scheduling-PDCCH-CCE-usage.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _DL_scheduling_PDCCH_CCE_usage_H_ +#define _DL_scheduling_PDCCH_CCE_usage_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/DLResourceBitmapULandDLSharing.c b/asn1c_defs/all-defs/DLResourceBitmapULandDLSharing.c new file mode 100644 index 0000000..0c0e6f7 --- /dev/null +++ b/asn1c_defs/all-defs/DLResourceBitmapULandDLSharing.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_DLResourceBitmapULandDLSharing_constr_1, DLResourceBitmapULandDLSharing_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/DLResourceBitmapULandDLSharing.h b/asn1c_defs/all-defs/DLResourceBitmapULandDLSharing.h new file mode 100644 index 0000000..df3cccd --- /dev/null +++ b/asn1c_defs/all-defs/DLResourceBitmapULandDLSharing.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _DLResourceBitmapULandDLSharing_H_ +#define _DLResourceBitmapULandDLSharing_H_ + + +#include + +/* 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; +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 diff --git a/asn1c_defs/all-defs/DLResourcesULandDLSharing.c b/asn1c_defs/all-defs/DLResourcesULandDLSharing.c new file mode 100644 index 0000000..854fad6 --- /dev/null +++ b/asn1c_defs/all-defs/DLResourcesULandDLSharing.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "DLResourcesULandDLSharing.h" + +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) */ + { 0, &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/asn1c_defs/all-defs/DLResourcesULandDLSharing.h b/asn1c_defs/all-defs/DLResourcesULandDLSharing.h new file mode 100644 index 0000000..4350def --- /dev/null +++ b/asn1c_defs/all-defs/DLResourcesULandDLSharing.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _DLResourcesULandDLSharing_H_ +#define _DLResourcesULandDLSharing_H_ + + +#include + +/* Including external dependencies */ +#include +#include "DLResourceBitmapULandDLSharing.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/DRB-ID.c b/asn1c_defs/all-defs/DRB-ID.c new file mode 100644 index 0000000..323882b --- /dev/null +++ b/asn1c_defs/all-defs/DRB-ID.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_DRB_ID_constr_1, DRB_ID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/DRB-ID.h b/asn1c_defs/all-defs/DRB-ID.h new file mode 100644 index 0000000..42ba130 --- /dev/null +++ b/asn1c_defs/all-defs/DRB-ID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _DRB_ID_H_ +#define _DRB_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/DataForwardingAddressIndication.c b/asn1c_defs/all-defs/DataForwardingAddressIndication.c new file mode 100644 index 0000000..50878b9 --- /dev/null +++ b/asn1c_defs/all-defs/DataForwardingAddressIndication.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P118, + 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/asn1c_defs/all-defs/DataForwardingAddressIndication.h b/asn1c_defs/all-defs/DataForwardingAddressIndication.h new file mode 100644 index 0000000..12547a2 --- /dev/null +++ b/asn1c_defs/all-defs/DataForwardingAddressIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _DataForwardingAddressIndication_H_ +#define _DataForwardingAddressIndication_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DataForwardingAddressIndication */ +typedef struct DataForwardingAddressIndication { + ProtocolIE_Container_8180P118_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 diff --git a/asn1c_defs/all-defs/DataTrafficResourceIndication.c b/asn1c_defs/all-defs/DataTrafficResourceIndication.c new file mode 100644 index 0000000..c1ebe48 --- /dev/null +++ b/asn1c_defs/all-defs/DataTrafficResourceIndication.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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, + { 0, &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_8231P131, + 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/asn1c_defs/all-defs/DataTrafficResourceIndication.h b/asn1c_defs/all-defs/DataTrafficResourceIndication.h new file mode 100644 index 0000000..186222d --- /dev/null +++ b/asn1c_defs/all-defs/DataTrafficResourceIndication.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _DataTrafficResourceIndication_H_ +#define _DataTrafficResourceIndication_H_ + + +#include + +/* Including external dependencies */ +#include +#include "SharedResourceType.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/DataTrafficResources.c b/asn1c_defs/all-defs/DataTrafficResources.c new file mode 100644 index 0000000..c6d3a1b --- /dev/null +++ b/asn1c_defs/all-defs/DataTrafficResources.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_DataTrafficResources_constr_1, DataTrafficResources_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/DataTrafficResources.h b/asn1c_defs/all-defs/DataTrafficResources.h new file mode 100644 index 0000000..62ab690 --- /dev/null +++ b/asn1c_defs/all-defs/DataTrafficResources.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _DataTrafficResources_H_ +#define _DataTrafficResources_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/DeactivationIndication.c b/asn1c_defs/all-defs/DeactivationIndication.c new file mode 100644 index 0000000..590c36a --- /dev/null +++ b/asn1c_defs/all-defs/DeactivationIndication.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "DeactivationIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_DeactivationIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DeactivationIndication_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/DeactivationIndication.h b/asn1c_defs/all-defs/DeactivationIndication.h new file mode 100644 index 0000000..93cb68e --- /dev/null +++ b/asn1c_defs/all-defs/DeactivationIndication.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _DeactivationIndication_H_ +#define _DeactivationIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/DeliveryStatus.c b/asn1c_defs/all-defs/DeliveryStatus.c new file mode 100644 index 0000000..b177ca9 --- /dev/null +++ b/asn1c_defs/all-defs/DeliveryStatus.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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, + { 0, &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_8231P132, + 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/asn1c_defs/all-defs/DeliveryStatus.h b/asn1c_defs/all-defs/DeliveryStatus.h new file mode 100644 index 0000000..0867298 --- /dev/null +++ b/asn1c_defs/all-defs/DeliveryStatus.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _DeliveryStatus_H_ +#define _DeliveryStatus_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/DuplicationActivation.c b/asn1c_defs/all-defs/DuplicationActivation.c new file mode 100644 index 0000000..490dac6 --- /dev/null +++ b/asn1c_defs/all-defs/DuplicationActivation.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "DuplicationActivation.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_DuplicationActivation_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DuplicationActivation_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/DuplicationActivation.h b/asn1c_defs/all-defs/DuplicationActivation.h new file mode 100644 index 0000000..e809ca8 --- /dev/null +++ b/asn1c_defs/all-defs/DuplicationActivation.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _DuplicationActivation_H_ +#define _DuplicationActivation_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/DynamicDLTransmissionInformation.c b/asn1c_defs/all-defs/DynamicDLTransmissionInformation.c new file mode 100644 index 0000000..249f705 --- /dev/null +++ b/asn1c_defs/all-defs/DynamicDLTransmissionInformation.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "DynamicDLTransmissionInformation.h" + +#include "DynamicNAICSInformation.h" +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) */ + { 0, &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/asn1c_defs/all-defs/DynamicDLTransmissionInformation.h b/asn1c_defs/all-defs/DynamicDLTransmissionInformation.h new file mode 100644 index 0000000..d42b797 --- /dev/null +++ b/asn1c_defs/all-defs/DynamicDLTransmissionInformation.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _DynamicDLTransmissionInformation_H_ +#define _DynamicDLTransmissionInformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/DynamicNAICSInformation.c b/asn1c_defs/all-defs/DynamicNAICSInformation.c new file mode 100644 index 0000000..3dc930f --- /dev/null +++ b/asn1c_defs/all-defs/DynamicNAICSInformation.c @@ -0,0 +1,222 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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_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_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 */ + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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_8231P133, + 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/asn1c_defs/all-defs/DynamicNAICSInformation.h b/asn1c_defs/all-defs/DynamicNAICSInformation.h new file mode 100644 index 0000000..7e222a2 --- /dev/null +++ b/asn1c_defs/all-defs/DynamicNAICSInformation.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _DynamicNAICSInformation_H_ +#define _DynamicNAICSInformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include "PA-Values.h" +#include +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RAB-ID.c b/asn1c_defs/all-defs/E-RAB-ID.c new file mode 100644 index 0000000..4d56fd5 --- /dev/null +++ b/asn1c_defs/all-defs/E-RAB-ID.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_E_RAB_ID_constr_1, E_RAB_ID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/E-RAB-ID.h b/asn1c_defs/all-defs/E-RAB-ID.h new file mode 100644 index 0000000..c1e29b6 --- /dev/null +++ b/asn1c_defs/all-defs/E-RAB-ID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RAB_ID_H_ +#define _E_RAB_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/E-RAB-Item.c b/asn1c_defs/all-defs/E-RAB-Item.c new file mode 100644 index 0000000..89be2fc --- /dev/null +++ b/asn1c_defs/all-defs/E-RAB-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P140, + 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/asn1c_defs/all-defs/E-RAB-Item.h b/asn1c_defs/all-defs/E-RAB-Item.h new file mode 100644 index 0000000..e2e34af --- /dev/null +++ b/asn1c_defs/all-defs/E-RAB-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RAB_Item_H_ +#define _E_RAB_Item_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "Cause.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RAB-Level-QoS-Parameters.c b/asn1c_defs/all-defs/E-RAB-Level-QoS-Parameters.c new file mode 100644 index 0000000..7b25deb --- /dev/null +++ b/asn1c_defs/all-defs/E-RAB-Level-QoS-Parameters.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P139, + 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/asn1c_defs/all-defs/E-RAB-Level-QoS-Parameters.h b/asn1c_defs/all-defs/E-RAB-Level-QoS-Parameters.h new file mode 100644 index 0000000..878f948 --- /dev/null +++ b/asn1c_defs/all-defs/E-RAB-Level-QoS-Parameters.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RAB_Level_QoS_Parameters_H_ +#define _E_RAB_Level_QoS_Parameters_H_ + + +#include + +/* Including external dependencies */ +#include "QCI.h" +#include "AllocationAndRetentionPriority.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RAB-List.c b/asn1c_defs/all-defs/E-RAB-List.c new file mode 100644 index 0000000..7260783 --- /dev/null +++ b/asn1c_defs/all-defs/E-RAB-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RAB-List.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P46, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RAB-List.h b/asn1c_defs/all-defs/E-RAB-List.h new file mode 100644 index 0000000..51449a4 --- /dev/null +++ b/asn1c_defs/all-defs/E-RAB-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RAB_List_H_ +#define _E_RAB_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABUsageReport-Item.c b/asn1c_defs/all-defs/E-RABUsageReport-Item.c new file mode 100644 index 0000000..629c2f3 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABUsageReport-Item.c @@ -0,0 +1,227 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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_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_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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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_8231P141, + 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/asn1c_defs/all-defs/E-RABUsageReport-Item.h b/asn1c_defs/all-defs/E-RABUsageReport-Item.h new file mode 100644 index 0000000..95a877f --- /dev/null +++ b/asn1c_defs/all-defs/E-RABUsageReport-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABUsageReport_Item_H_ +#define _E_RABUsageReport_Item_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABUsageReportList.c b/asn1c_defs/all-defs/E-RABUsageReportList.c new file mode 100644 index 0000000..ca63dae --- /dev/null +++ b/asn1c_defs/all-defs/E-RABUsageReportList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABUsageReportList.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P47, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABUsageReportList.h b/asn1c_defs/all-defs/E-RABUsageReportList.h new file mode 100644 index 0000000..29dc2e1 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABUsageReportList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABUsageReportList_H_ +#define _E_RABUsageReportList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-Item.c b/asn1c_defs/all-defs/E-RABs-Admitted-Item.c new file mode 100644 index 0000000..7e9aaf9 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-Item.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P5, + 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/asn1c_defs/all-defs/E-RABs-Admitted-Item.h b/asn1c_defs/all-defs/E-RABs-Admitted-Item.h new file mode 100644 index 0000000..65973f8 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-Item.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_Item_H_ +#define _E_RABs_Admitted_Item_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-List.c b/asn1c_defs/all-defs/E-RABs-Admitted-List.c new file mode 100644 index 0000000..ba79dc5 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-Admitted-List.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P7, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-Admitted-List.h b/asn1c_defs/all-defs/E-RABs-Admitted-List.h new file mode 100644 index 0000000..8b26630 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_List_H_ +#define _E_RABs_Admitted_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.c new file mode 100644 index 0000000..bea83bc --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P19, + 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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.h new file mode 100644 index 0000000..6a9a940 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_H_ +#define _E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "GTPtunnelEndpoint.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.c new file mode 100644 index 0000000..962816a --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P20, + 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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.h new file mode 100644 index 0000000..2845e74 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_H_ +#define _E_RABs_Admitted_ToBeAdded_Item_Split_Bearer_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "GTPtunnelEndpoint.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-Item.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-Item.c new file mode 100644 index 0000000..8df9fb8 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-Item.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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) */ + { 0, &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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-Item.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-Item.h new file mode 100644 index 0000000..950bc46 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-Item.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeAdded_Item_H_ +#define _E_RABs_Admitted_ToBeAdded_Item_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-List.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-List.c new file mode 100644 index 0000000..5aefd80 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-Admitted-ToBeAdded-List.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P16, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-List.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-List.h new file mode 100644 index 0000000..4444da4 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeAdded_List_H_ +#define _E_RABs_Admitted_ToBeAdded_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.c new file mode 100644 index 0000000..66dc2f1 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P30, + 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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.h new file mode 100644 index 0000000..2b0a1a5 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_H_ +#define _E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "GTPtunnelEndpoint.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.c new file mode 100644 index 0000000..06c32bd --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P31, + 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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.h new file mode 100644 index 0000000..6961c85 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_H_ +#define _E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "GTPtunnelEndpoint.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckItem.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckItem.c new file mode 100644 index 0000000..acc8937 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckItem.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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) */ + { 0, &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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckItem.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckItem.h new file mode 100644 index 0000000..e1b2822 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckItem.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeAdded_ModAckItem_H_ +#define _E_RABs_Admitted_ToBeAdded_ModAckItem_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckList.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckList.c new file mode 100644 index 0000000..29f68a6 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-Admitted-ToBeAdded-ModAckList.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P20, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckList.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckList.h new file mode 100644 index 0000000..c30a45e --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-ModAckList.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeAdded_ModAckList_H_ +#define _E_RABs_Admitted_ToBeAdded_ModAckList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.c new file mode 100644 index 0000000..e1d9b11 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P49, + 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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.h new file mode 100644 index 0000000..9fe8272 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_H_ +#define _E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_H_ + + +#include + +/* Including external dependencies */ +#include "GTPtunnelEndpoint.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.c new file mode 100644 index 0000000..27639d1 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.c @@ -0,0 +1,126 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P48, + 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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.h new file mode 100644 index 0000000..2042477 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_H_ +#define _E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_H_ + + +#include + +/* Including external dependencies */ +#include "GTPtunnelEndpoint.h" +#include "RLCMode.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.c new file mode 100644 index 0000000..6cca75c --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.c @@ -0,0 +1,139 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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) */ + { 0, &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_8231P47, + 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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.h new file mode 100644 index 0000000..2df28be --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_H_ +#define _E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "EN-DC-ResourceConfiguration.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.c new file mode 100644 index 0000000..1d56ce7 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P29, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.h new file mode 100644 index 0000000..a0c6151 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_H_ +#define _E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.c new file mode 100644 index 0000000..d50e5ba --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P64, + 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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.h new file mode 100644 index 0000000..eea05a7 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_H_ +#define _E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent_H_ + + +#include + +/* Including external dependencies */ +#include "GTPtunnelEndpoint.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.c new file mode 100644 index 0000000..c898e1a --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.c @@ -0,0 +1,126 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P63, + 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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.h new file mode 100644 index 0000000..9a2ca5c --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_H_ +#define _E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent_H_ + + +#include + +/* Including external dependencies */ +#include "GTPtunnelEndpoint.h" +#include "RLCMode.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.c new file mode 100644 index 0000000..e74f040 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.c @@ -0,0 +1,139 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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) */ + { 0, &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_8231P62, + 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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.h new file mode 100644 index 0000000..5327147 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_H_ +#define _E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "EN-DC-ResourceConfiguration.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAckList.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAckList.c new file mode 100644 index 0000000..2528951 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAckList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-Admitted-ToBeAdded-SgNBModAckList.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P33, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAckList.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAckList.h new file mode 100644 index 0000000..ada0388 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeAdded-SgNBModAckList.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeAdded_SgNBModAckList_H_ +#define _E_RABs_Admitted_ToBeAdded_SgNBModAckList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer.c new file mode 100644 index 0000000..96a93a8 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P32, + 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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer.h new file mode 100644 index 0000000..88671f1 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_H_ +#define _E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer.c new file mode 100644 index 0000000..90500ac --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P33, + 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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer.h new file mode 100644 index 0000000..19be696 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_H_ +#define _E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckItem.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckItem.c new file mode 100644 index 0000000..f4f75c4 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckItem.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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) */ + { 0, &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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckItem.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckItem.h new file mode 100644 index 0000000..2b52968 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckItem.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeModified_ModAckItem_H_ +#define _E_RABs_Admitted_ToBeModified_ModAckItem_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckList.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckList.c new file mode 100644 index 0000000..8b1f16e --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-Admitted-ToBeModified-ModAckList.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P21, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckList.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckList.h new file mode 100644 index 0000000..3e83873 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-ModAckList.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeModified_ModAckList_H_ +#define _E_RABs_Admitted_ToBeModified_ModAckList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent.c new file mode 100644 index 0000000..a13c64d --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P67, + 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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent.h new file mode 100644 index 0000000..6f2cd73 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_H_ +#define _E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.c new file mode 100644 index 0000000..43a8162 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.c @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P66, + 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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.h new file mode 100644 index 0000000..dcabf35 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_H_ +#define _E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAck-Item.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAck-Item.c new file mode 100644 index 0000000..f8140e6 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAck-Item.c @@ -0,0 +1,139 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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) */ + { 0, &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_8231P65, + 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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAck-Item.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAck-Item.h new file mode 100644 index 0000000..3e7e764 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAck-Item.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeModified_SgNBModAck_Item_H_ +#define _E_RABs_Admitted_ToBeModified_SgNBModAck_Item_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "EN-DC-ResourceConfiguration.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAckList.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAckList.c new file mode 100644 index 0000000..889bd34 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAckList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-Admitted-ToBeModified-SgNBModAckList.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P34, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAckList.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAckList.h new file mode 100644 index 0000000..7507549 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeModified-SgNBModAckList.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeModified_SgNBModAckList_H_ +#define _E_RABs_Admitted_ToBeModified_SgNBModAckList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.c new file mode 100644 index 0000000..8c7cf49 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P34, + 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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.h new file mode 100644 index 0000000..c00efea --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_H_ +#define _E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer.c new file mode 100644 index 0000000..19f5a56 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P35, + 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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer.h new file mode 100644 index 0000000..f78930d --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_H_ +#define _E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-ModAckList.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-ModAckList.c new file mode 100644 index 0000000..138037e --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-ModAckList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-Admitted-ToBeReleased-ModAckList.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P22, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-ModAckList.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-ModAckList.h new file mode 100644 index 0000000..02d6115 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-ModAckList.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeReleased_ModAckList_H_ +#define _E_RABs_Admitted_ToBeReleased_ModAckList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.c new file mode 100644 index 0000000..ce073b5 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P70, + 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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.h new file mode 100644 index 0000000..1e7f0df --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_H_ +#define _E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.c new file mode 100644 index 0000000..e8dfb5d --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P69, + 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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.h new file mode 100644 index 0000000..fa3b5d9 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_H_ +#define _E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBModAckList.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBModAckList.c new file mode 100644 index 0000000..ac34975 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBModAckList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-Admitted-ToBeReleased-SgNBModAckList.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P35, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBModAckList.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBModAckList.h new file mode 100644 index 0000000..79964bb --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBModAckList.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeReleased_SgNBModAckList_H_ +#define _E_RABs_Admitted_ToBeReleased_SgNBModAckList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.c new file mode 100644 index 0000000..43ff13a --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P81, + 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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.h new file mode 100644 index 0000000..7ef8d6d --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_H_ +#define _E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "RLCMode.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.c new file mode 100644 index 0000000..e39516f --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P40, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.h new file mode 100644 index 0000000..2e34361 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_H_ +#define _E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToReleased-ModAckItem.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToReleased-ModAckItem.c new file mode 100644 index 0000000..3008a79 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToReleased-ModAckItem.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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) */ + { 0, &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/asn1c_defs/all-defs/E-RABs-Admitted-ToReleased-ModAckItem.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToReleased-ModAckItem.h new file mode 100644 index 0000000..ed69cb1 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToReleased-ModAckItem.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToReleased_ModAckItem_H_ +#define _E_RABs_Admitted_ToReleased_ModAckItem_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-Admitted-ToReleased-SgNBModAck-Item.c b/asn1c_defs/all-defs/E-RABs-Admitted-ToReleased-SgNBModAck-Item.c new file mode 100644 index 0000000..9085259 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToReleased-SgNBModAck-Item.c @@ -0,0 +1,139 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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) */ + { 0, &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_8231P68, + 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/asn1c_defs/all-defs/E-RABs-Admitted-ToReleased-SgNBModAck-Item.h b/asn1c_defs/all-defs/E-RABs-Admitted-ToReleased-SgNBModAck-Item.h new file mode 100644 index 0000000..ba7785b --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-Admitted-ToReleased-SgNBModAck-Item.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_Admitted_ToReleased_SgNBModAck_Item_H_ +#define _E_RABs_Admitted_ToReleased_SgNBModAck_Item_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "EN-DC-ResourceConfiguration.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent.c b/asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent.c new file mode 100644 index 0000000..3bf786a --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P77, + 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/asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent.h b/asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent.h new file mode 100644 index 0000000..901643c --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_H_ +#define _E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent.c b/asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent.c new file mode 100644 index 0000000..cd913de --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P76, + 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/asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent.h b/asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent.h new file mode 100644 index 0000000..4444413 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_H_ +#define _E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConf-Item.c b/asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConf-Item.c new file mode 100644 index 0000000..7217ae4 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConf-Item.c @@ -0,0 +1,139 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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) */ + { 0, &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_8231P75, + 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/asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConf-Item.h b/asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConf-Item.h new file mode 100644 index 0000000..20a56c5 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConf-Item.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_AdmittedToBeModified_SgNBModConf_Item_H_ +#define _E_RABs_AdmittedToBeModified_SgNBModConf_Item_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "EN-DC-ResourceConfiguration.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConfList.c b/asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConfList.c new file mode 100644 index 0000000..fe924ba --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConfList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-AdmittedToBeModified-SgNBModConfList.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P38, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConfList.h b/asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConfList.h new file mode 100644 index 0000000..aea21c6 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-AdmittedToBeModified-SgNBModConfList.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_AdmittedToBeModified_SgNBModConfList_H_ +#define _E_RABs_AdmittedToBeModified_SgNBModConfList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-DataForwardingAddress-Item.c b/asn1c_defs/all-defs/E-RABs-DataForwardingAddress-Item.c new file mode 100644 index 0000000..ac58cc9 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-DataForwardingAddress-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P103, + 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/asn1c_defs/all-defs/E-RABs-DataForwardingAddress-Item.h b/asn1c_defs/all-defs/E-RABs-DataForwardingAddress-Item.h new file mode 100644 index 0000000..02d91bb --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-DataForwardingAddress-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_DataForwardingAddress_Item_H_ +#define _E_RABs_DataForwardingAddress_Item_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "GTPtunnelEndpoint.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-DataForwardingAddress-List.c b/asn1c_defs/all-defs/E-RABs-DataForwardingAddress-List.c new file mode 100644 index 0000000..5faed29 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-DataForwardingAddress-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-DataForwardingAddress-List.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P45, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-DataForwardingAddress-List.h b/asn1c_defs/all-defs/E-RABs-DataForwardingAddress-List.h new file mode 100644 index 0000000..3909277 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-DataForwardingAddress-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_DataForwardingAddress_List_H_ +#define _E_RABs_DataForwardingAddress_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-SubjectToCounterCheck-List.c b/asn1c_defs/all-defs/E-RABs-SubjectToCounterCheck-List.c new file mode 100644 index 0000000..bff66d6 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-SubjectToCounterCheck-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-SubjectToCounterCheck-List.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P26, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-SubjectToCounterCheck-List.h b/asn1c_defs/all-defs/E-RABs-SubjectToCounterCheck-List.h new file mode 100644 index 0000000..74fe46d --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-SubjectToCounterCheck-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_SubjectToCounterCheck_List_H_ +#define _E_RABs_SubjectToCounterCheck_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-SubjectToCounterCheckItem.c b/asn1c_defs/all-defs/E-RABs-SubjectToCounterCheckItem.c new file mode 100644 index 0000000..e5d9bdb --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-SubjectToCounterCheckItem.c @@ -0,0 +1,225 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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_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_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 */ + { 0, &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 */ + { 0, &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, + { 0, &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, + { 0, &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_8231P41, + 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/asn1c_defs/all-defs/E-RABs-SubjectToCounterCheckItem.h b/asn1c_defs/all-defs/E-RABs-SubjectToCounterCheckItem.h new file mode 100644 index 0000000..c4ff561 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-SubjectToCounterCheckItem.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_SubjectToCounterCheckItem_H_ +#define _E_RABs_SubjectToCounterCheckItem_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-SubjectToSgNBCounterCheck-Item.c b/asn1c_defs/all-defs/E-RABs-SubjectToSgNBCounterCheck-Item.c new file mode 100644 index 0000000..49c2798 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-SubjectToSgNBCounterCheck-Item.c @@ -0,0 +1,225 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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_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_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 */ + { 0, &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 */ + { 0, &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, + { 0, &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, + { 0, &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_8231P86, + 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/asn1c_defs/all-defs/E-RABs-SubjectToSgNBCounterCheck-Item.h b/asn1c_defs/all-defs/E-RABs-SubjectToSgNBCounterCheck-Item.h new file mode 100644 index 0000000..c04f163 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-SubjectToSgNBCounterCheck-Item.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_SubjectToSgNBCounterCheck_Item_H_ +#define _E_RABs_SubjectToSgNBCounterCheck_Item_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-SubjectToSgNBCounterCheck-List.c b/asn1c_defs/all-defs/E-RABs-SubjectToSgNBCounterCheck-List.c new file mode 100644 index 0000000..539b786 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-SubjectToSgNBCounterCheck-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-SubjectToSgNBCounterCheck-List.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P43, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-SubjectToSgNBCounterCheck-List.h b/asn1c_defs/all-defs/E-RABs-SubjectToSgNBCounterCheck-List.h new file mode 100644 index 0000000..f088eea --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-SubjectToSgNBCounterCheck-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_SubjectToSgNBCounterCheck_List_H_ +#define _E_RABs_SubjectToSgNBCounterCheck_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-SubjectToStatusTransfer-Item.c b/asn1c_defs/all-defs/E-RABs-SubjectToStatusTransfer-Item.c new file mode 100644 index 0000000..cbb083b --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-SubjectToStatusTransfer-Item.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P6, + 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/asn1c_defs/all-defs/E-RABs-SubjectToStatusTransfer-Item.h b/asn1c_defs/all-defs/E-RABs-SubjectToStatusTransfer-Item.h new file mode 100644 index 0000000..6a18134 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-SubjectToStatusTransfer-Item.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_SubjectToStatusTransfer_Item_H_ +#define _E_RABs_SubjectToStatusTransfer_Item_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "ReceiveStatusofULPDCPSDUs.h" +#include "COUNTvalue.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-SubjectToStatusTransfer-List.c b/asn1c_defs/all-defs/E-RABs-SubjectToStatusTransfer-List.c new file mode 100644 index 0000000..30d4161 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-SubjectToStatusTransfer-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-SubjectToStatusTransfer-List.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P8, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-SubjectToStatusTransfer-List.h b/asn1c_defs/all-defs/E-RABs-SubjectToStatusTransfer-List.h new file mode 100644 index 0000000..b4320c9 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-SubjectToStatusTransfer-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_SubjectToStatusTransfer_List_H_ +#define _E_RABs_SubjectToStatusTransfer_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeAdded-Item-SCG-Bearer.c b/asn1c_defs/all-defs/E-RABs-ToBeAdded-Item-SCG-Bearer.c new file mode 100644 index 0000000..ce8318c --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-Item-SCG-Bearer.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P17, + 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/asn1c_defs/all-defs/E-RABs-ToBeAdded-Item-SCG-Bearer.h b/asn1c_defs/all-defs/E-RABs-ToBeAdded-Item-SCG-Bearer.h new file mode 100644 index 0000000..ae635ba --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-Item-SCG-Bearer.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeAdded_Item_SCG_Bearer_H_ +#define _E_RABs_ToBeAdded_Item_SCG_Bearer_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "E-RAB-Level-QoS-Parameters.h" +#include "DL-Forwarding.h" +#include "GTPtunnelEndpoint.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeAdded-Item-Split-Bearer.c b/asn1c_defs/all-defs/E-RABs-ToBeAdded-Item-Split-Bearer.c new file mode 100644 index 0000000..f4e8d87 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-Item-Split-Bearer.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P18, + 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/asn1c_defs/all-defs/E-RABs-ToBeAdded-Item-Split-Bearer.h b/asn1c_defs/all-defs/E-RABs-ToBeAdded-Item-Split-Bearer.h new file mode 100644 index 0000000..e88f22b --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-Item-Split-Bearer.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeAdded_Item_Split_Bearer_H_ +#define _E_RABs_ToBeAdded_Item_Split_Bearer_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "E-RAB-Level-QoS-Parameters.h" +#include "GTPtunnelEndpoint.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeAdded-Item.c b/asn1c_defs/all-defs/E-RABs-ToBeAdded-Item.c new file mode 100644 index 0000000..2d01f27 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-Item.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-ToBeAdded-Item.h" + +#include "E-RABs-ToBeAdded-Item-SCG-Bearer.h" +#include "E-RABs-ToBeAdded-Item-Split-Bearer.h" +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) */ + { 0, &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/asn1c_defs/all-defs/E-RABs-ToBeAdded-Item.h b/asn1c_defs/all-defs/E-RABs-ToBeAdded-Item.h new file mode 100644 index 0000000..2d20330 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-Item.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeAdded_Item_H_ +#define _E_RABs_ToBeAdded_Item_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeAdded-List-ModReq.c b/asn1c_defs/all-defs/E-RABs-ToBeAdded-List-ModReq.c new file mode 100644 index 0000000..85e8596 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-List-ModReq.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-ToBeAdded-List-ModReq.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P17, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-ToBeAdded-List-ModReq.h b/asn1c_defs/all-defs/E-RABs-ToBeAdded-List-ModReq.h new file mode 100644 index 0000000..93ce2e8 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-List-ModReq.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeAdded_List_ModReq_H_ +#define _E_RABs_ToBeAdded_List_ModReq_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeAdded-List.c b/asn1c_defs/all-defs/E-RABs-ToBeAdded-List.c new file mode 100644 index 0000000..aaaefd5 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-ToBeAdded-List.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P15, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-ToBeAdded-List.h b/asn1c_defs/all-defs/E-RABs-ToBeAdded-List.h new file mode 100644 index 0000000..7aeb66b --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeAdded_List_H_ +#define _E_RABs_ToBeAdded_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.c b/asn1c_defs/all-defs/E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.c new file mode 100644 index 0000000..c2e2a85 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P24, + 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/asn1c_defs/all-defs/E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.h b/asn1c_defs/all-defs/E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.h new file mode 100644 index 0000000..62bdb1d --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_H_ +#define _E_RABs_ToBeAdded_ModReqItem_SCG_Bearer_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "E-RAB-Level-QoS-Parameters.h" +#include "DL-Forwarding.h" +#include "GTPtunnelEndpoint.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeAdded-ModReqItem-Split-Bearer.c b/asn1c_defs/all-defs/E-RABs-ToBeAdded-ModReqItem-Split-Bearer.c new file mode 100644 index 0000000..2bc7279 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-ModReqItem-Split-Bearer.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P25, + 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/asn1c_defs/all-defs/E-RABs-ToBeAdded-ModReqItem-Split-Bearer.h b/asn1c_defs/all-defs/E-RABs-ToBeAdded-ModReqItem-Split-Bearer.h new file mode 100644 index 0000000..52ee8d5 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-ModReqItem-Split-Bearer.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeAdded_ModReqItem_Split_Bearer_H_ +#define _E_RABs_ToBeAdded_ModReqItem_Split_Bearer_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "E-RAB-Level-QoS-Parameters.h" +#include "GTPtunnelEndpoint.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeAdded-ModReqItem.c b/asn1c_defs/all-defs/E-RABs-ToBeAdded-ModReqItem.c new file mode 100644 index 0000000..1c45a52 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-ModReqItem.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-ToBeAdded-ModReqItem.h" + +#include "E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.h" +#include "E-RABs-ToBeAdded-ModReqItem-Split-Bearer.h" +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) */ + { 0, &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/asn1c_defs/all-defs/E-RABs-ToBeAdded-ModReqItem.h b/asn1c_defs/all-defs/E-RABs-ToBeAdded-ModReqItem.h new file mode 100644 index 0000000..86b7cbe --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-ModReqItem.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeAdded_ModReqItem_H_ +#define _E_RABs_ToBeAdded_ModReqItem_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.c b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.c new file mode 100644 index 0000000..283bde3 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P46, + 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/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.h b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.h new file mode 100644 index 0000000..52a6ba8 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_H_ +#define _E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-Level-QoS-Parameters.h" +#include "GTPtunnelEndpoint.h" +#include "RLCMode.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.c b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.c new file mode 100644 index 0000000..c156698 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P45, + 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/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.h b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.h new file mode 100644 index 0000000..c22ae29 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_H_ +#define _E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-Level-QoS-Parameters.h" +#include "DL-Forwarding.h" +#include "GTPtunnelEndpoint.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReq-Item.c b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReq-Item.c new file mode 100644 index 0000000..db329ae --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReq-Item.c @@ -0,0 +1,149 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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) */ + { 0, &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_8231P44, + 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/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReq-Item.h b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReq-Item.h new file mode 100644 index 0000000..b1c110d --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReq-Item.h @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeAdded_SgNBAddReq_Item_H_ +#define _E_RABs_ToBeAdded_SgNBAddReq_Item_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "DRB-ID.h" +#include "EN-DC-ResourceConfiguration.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReqList.c b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReqList.c new file mode 100644 index 0000000..2f261c4 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReqList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-ToBeAdded-SgNBAddReqList.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P28, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReqList.h b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReqList.h new file mode 100644 index 0000000..48ce00d --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBAddReqList.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeAdded_SgNBAddReqList_H_ +#define _E_RABs_ToBeAdded_SgNBAddReqList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.c b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.c new file mode 100644 index 0000000..fa269b6 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P55, + 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/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.h b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.h new file mode 100644 index 0000000..26d29fb --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_H_ +#define _E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-Level-QoS-Parameters.h" +#include "GTPtunnelEndpoint.h" +#include "RLCMode.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.c b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.c new file mode 100644 index 0000000..9b9b573 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P54, + 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/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.h b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.h new file mode 100644 index 0000000..45c2a68 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_H_ +#define _E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-Level-QoS-Parameters.h" +#include "DL-Forwarding.h" +#include "GTPtunnelEndpoint.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-Item.c b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-Item.c new file mode 100644 index 0000000..490cb87 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-Item.c @@ -0,0 +1,149 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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) */ + { 0, &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_8231P53, + 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/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-Item.h b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-Item.h new file mode 100644 index 0000000..2bbd9c6 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-Item.h @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeAdded_SgNBModReq_Item_H_ +#define _E_RABs_ToBeAdded_SgNBModReq_Item_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "DRB-ID.h" +#include "EN-DC-ResourceConfiguration.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-List.c b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-List.c new file mode 100644 index 0000000..1a3e20c --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-ToBeAdded-SgNBModReq-List.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P30, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-List.h b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-List.h new file mode 100644 index 0000000..0e85ff7 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeAdded-SgNBModReq-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeAdded_SgNBModReq_List_H_ +#define _E_RABs_ToBeAdded_SgNBModReq_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeModified-List-ModReq.c b/asn1c_defs/all-defs/E-RABs-ToBeModified-List-ModReq.c new file mode 100644 index 0000000..c803aae --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeModified-List-ModReq.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-ToBeModified-List-ModReq.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P18, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-ToBeModified-List-ModReq.h b/asn1c_defs/all-defs/E-RABs-ToBeModified-List-ModReq.h new file mode 100644 index 0000000..0e62298 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeModified-List-ModReq.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeModified_List_ModReq_H_ +#define _E_RABs_ToBeModified_List_ModReq_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeModified-ModReqItem-SCG-Bearer.c b/asn1c_defs/all-defs/E-RABs-ToBeModified-ModReqItem-SCG-Bearer.c new file mode 100644 index 0000000..2d4e7d6 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeModified-ModReqItem-SCG-Bearer.c @@ -0,0 +1,85 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P26, + 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/asn1c_defs/all-defs/E-RABs-ToBeModified-ModReqItem-SCG-Bearer.h b/asn1c_defs/all-defs/E-RABs-ToBeModified-ModReqItem-SCG-Bearer.h new file mode 100644 index 0000000..06812d3 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeModified-ModReqItem-SCG-Bearer.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeModified_ModReqItem_SCG_Bearer_H_ +#define _E_RABs_ToBeModified_ModReqItem_SCG_Bearer_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeModified-ModReqItem-Split-Bearer.c b/asn1c_defs/all-defs/E-RABs-ToBeModified-ModReqItem-Split-Bearer.c new file mode 100644 index 0000000..33baa71 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeModified-ModReqItem-Split-Bearer.c @@ -0,0 +1,85 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P27, + 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/asn1c_defs/all-defs/E-RABs-ToBeModified-ModReqItem-Split-Bearer.h b/asn1c_defs/all-defs/E-RABs-ToBeModified-ModReqItem-Split-Bearer.h new file mode 100644 index 0000000..5465c73 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeModified-ModReqItem-Split-Bearer.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeModified_ModReqItem_Split_Bearer_H_ +#define _E_RABs_ToBeModified_ModReqItem_Split_Bearer_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeModified-ModReqItem.c b/asn1c_defs/all-defs/E-RABs-ToBeModified-ModReqItem.c new file mode 100644 index 0000000..fd19a3a --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeModified-ModReqItem.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-ToBeModified-ModReqItem.h" + +#include "E-RABs-ToBeModified-ModReqItem-SCG-Bearer.h" +#include "E-RABs-ToBeModified-ModReqItem-Split-Bearer.h" +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) */ + { 0, &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/asn1c_defs/all-defs/E-RABs-ToBeModified-ModReqItem.h b/asn1c_defs/all-defs/E-RABs-ToBeModified-ModReqItem.h new file mode 100644 index 0000000..5d08856 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeModified-ModReqItem.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeModified_ModReqItem_H_ +#define _E_RABs_ToBeModified_ModReqItem_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent.c b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent.c new file mode 100644 index 0000000..14ae712 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent.c @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P58, + 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/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent.h b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent.h new file mode 100644 index 0000000..41d6b37 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_H_ +#define _E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.c b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.c new file mode 100644 index 0000000..a37f480 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.c @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P57, + 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/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.h b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.h new file mode 100644 index 0000000..fba534e --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_H_ +#define _E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-Item.c b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-Item.c new file mode 100644 index 0000000..87bc660 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-Item.c @@ -0,0 +1,139 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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) */ + { 0, &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_8231P56, + 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/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-Item.h b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-Item.h new file mode 100644 index 0000000..2b48373 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-Item.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeModified_SgNBModReq_Item_H_ +#define _E_RABs_ToBeModified_SgNBModReq_Item_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "EN-DC-ResourceConfiguration.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-List.c b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-List.c new file mode 100644 index 0000000..82a4f3c --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-ToBeModified-SgNBModReq-List.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P31, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-List.h b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-List.h new file mode 100644 index 0000000..ff660f8 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReq-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeModified_SgNBModReq_List_H_ +#define _E_RABs_ToBeModified_SgNBModReq_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent.c b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent.c new file mode 100644 index 0000000..f062324 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P74, + 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/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent.h b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent.h new file mode 100644 index 0000000..a8e8a6d --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_H_ +#define _E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.c b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.c new file mode 100644 index 0000000..0294a22 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.c @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P73, + 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/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.h b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.h new file mode 100644 index 0000000..1f91c1e --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_H_ +#define _E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqd-Item.c b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqd-Item.c new file mode 100644 index 0000000..0bdd494 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqd-Item.c @@ -0,0 +1,139 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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) */ + { 0, &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_8231P72, + 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/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqd-Item.h b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqd-Item.h new file mode 100644 index 0000000..25d9660 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqd-Item.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeModified_SgNBModReqd_Item_H_ +#define _E_RABs_ToBeModified_SgNBModReqd_Item_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "EN-DC-ResourceConfiguration.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqdList.c b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqdList.c new file mode 100644 index 0000000..d815c7e --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqdList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-ToBeModified-SgNBModReqdList.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P37, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqdList.h b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqdList.h new file mode 100644 index 0000000..b44ca55 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeModified-SgNBModReqdList.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeModified_SgNBModReqdList_H_ +#define _E_RABs_ToBeModified_SgNBModReqdList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-List-ModReq.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-List-ModReq.c new file mode 100644 index 0000000..c7acc20 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-List-ModReq.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-ToBeReleased-List-ModReq.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P19, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-ToBeReleased-List-ModReq.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-List-ModReq.h new file mode 100644 index 0000000..98cf5ac --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-List-ModReq.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_List_ModReq_H_ +#define _E_RABs_ToBeReleased_List_ModReq_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-List-RelConf.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-List-RelConf.c new file mode 100644 index 0000000..fe76b03 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-List-RelConf.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-ToBeReleased-List-RelConf.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P25, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-ToBeReleased-List-RelConf.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-List-RelConf.h new file mode 100644 index 0000000..3c74a8e --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-List-RelConf.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_List_RelConf_H_ +#define _E_RABs_ToBeReleased_List_RelConf_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-List-RelReq.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-List-RelReq.c new file mode 100644 index 0000000..c7a0d56 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-List-RelReq.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-ToBeReleased-List-RelReq.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P24, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-ToBeReleased-List-RelReq.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-List-RelReq.h new file mode 100644 index 0000000..70def89 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-List-RelReq.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_List_RelReq_H_ +#define _E_RABs_ToBeReleased_List_RelReq_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.c new file mode 100644 index 0000000..fbbecfb --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P28, + 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/asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.h new file mode 100644 index 0000000..3eab4d4 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_H_ +#define _E_RABs_ToBeReleased_ModReqItem_SCG_Bearer_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqItem-Split-Bearer.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqItem-Split-Bearer.c new file mode 100644 index 0000000..28a0b8e --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqItem-Split-Bearer.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P29, + 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/asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqItem-Split-Bearer.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqItem-Split-Bearer.h new file mode 100644 index 0000000..f1988fa --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqItem-Split-Bearer.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_ModReqItem_Split_Bearer_H_ +#define _E_RABs_ToBeReleased_ModReqItem_Split_Bearer_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqItem.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqItem.c new file mode 100644 index 0000000..17d0aaa --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqItem.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-ToBeReleased-ModReqItem.h" + +#include "E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.h" +#include "E-RABs-ToBeReleased-ModReqItem-Split-Bearer.h" +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) */ + { 0, &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/asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqItem.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqItem.h new file mode 100644 index 0000000..da406cd --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqItem.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_ModReqItem_H_ +#define _E_RABs_ToBeReleased_ModReqItem_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqd.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqd.c new file mode 100644 index 0000000..739dd2f --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqd.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-ToBeReleased-ModReqd.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P23, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqd.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqd.h new file mode 100644 index 0000000..395e2b5 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqd.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_ModReqd_H_ +#define _E_RABs_ToBeReleased_ModReqd_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqdItem.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqdItem.c new file mode 100644 index 0000000..12c66ed --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqdItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P36, + 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/asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqdItem.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqdItem.h new file mode 100644 index 0000000..f8b67d5 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-ModReqdItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_ModReqdItem_H_ +#define _E_RABs_ToBeReleased_ModReqdItem_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "Cause.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.c new file mode 100644 index 0000000..e1fbfa8 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P39, + 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/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.h new file mode 100644 index 0000000..d5bc903 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_H_ +#define _E_RABs_ToBeReleased_RelConfItem_SCG_Bearer_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelConfItem-Split-Bearer.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelConfItem-Split-Bearer.c new file mode 100644 index 0000000..d73bf20 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelConfItem-Split-Bearer.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P40, + 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/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelConfItem-Split-Bearer.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelConfItem-Split-Bearer.h new file mode 100644 index 0000000..b7e771f --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelConfItem-Split-Bearer.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_RelConfItem_Split_Bearer_H_ +#define _E_RABs_ToBeReleased_RelConfItem_Split_Bearer_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelConfItem.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelConfItem.c new file mode 100644 index 0000000..1743a0e --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelConfItem.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-ToBeReleased-RelConfItem.h" + +#include "E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.h" +#include "E-RABs-ToBeReleased-RelConfItem-Split-Bearer.h" +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) */ + { 0, &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/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelConfItem.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelConfItem.h new file mode 100644 index 0000000..9880872 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelConfItem.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_RelConfItem_H_ +#define _E_RABs_ToBeReleased_RelConfItem_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.c new file mode 100644 index 0000000..a1504df --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P37, + 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/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.h new file mode 100644 index 0000000..e7d1158 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_H_ +#define _E_RABs_ToBeReleased_RelReqItem_SCG_Bearer_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelReqItem-Split-Bearer.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelReqItem-Split-Bearer.c new file mode 100644 index 0000000..87ff76e --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelReqItem-Split-Bearer.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P38, + 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/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelReqItem-Split-Bearer.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelReqItem-Split-Bearer.h new file mode 100644 index 0000000..d489b1a --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelReqItem-Split-Bearer.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_RelReqItem_Split_Bearer_H_ +#define _E_RABs_ToBeReleased_RelReqItem_Split_Bearer_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelReqItem.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelReqItem.c new file mode 100644 index 0000000..e955c47 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelReqItem.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-ToBeReleased-RelReqItem.h" + +#include "E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.h" +#include "E-RABs-ToBeReleased-RelReqItem-Split-Bearer.h" +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) */ + { 0, &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/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelReqItem.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelReqItem.h new file mode 100644 index 0000000..2631b14 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-RelReqItem.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_RelReqItem_H_ +#define _E_RABs_ToBeReleased_RelReqItem_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.c new file mode 100644 index 0000000..ed16e28 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P89, + 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/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.h new file mode 100644 index 0000000..a5baa83 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_H_ +#define _E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.c new file mode 100644 index 0000000..1e26931 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P88, + 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/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.h new file mode 100644 index 0000000..52c158e --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_H_ +#define _E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConf-Item.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConf-Item.c new file mode 100644 index 0000000..18713ca --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConf-Item.c @@ -0,0 +1,139 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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) */ + { 0, &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_8231P87, + 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/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConf-Item.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConf-Item.h new file mode 100644 index 0000000..86298b8 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConf-Item.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_SgNBChaConf_Item_H_ +#define _E_RABs_ToBeReleased_SgNBChaConf_Item_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "EN-DC-ResourceConfiguration.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConfList.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConfList.c new file mode 100644 index 0000000..6b0164a --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConfList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-ToBeReleased-SgNBChaConfList.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P44, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConfList.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConfList.h new file mode 100644 index 0000000..2ad635c --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBChaConfList.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_SgNBChaConfList_H_ +#define _E_RABs_ToBeReleased_SgNBChaConfList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.c new file mode 100644 index 0000000..bc4ba6b --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P61, + 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/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.h new file mode 100644 index 0000000..9bf489c --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_H_ +#define _E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.c new file mode 100644 index 0000000..9e27137 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P60, + 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/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.h new file mode 100644 index 0000000..7f4987e --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_H_ +#define _E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-Item.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-Item.c new file mode 100644 index 0000000..5374f7e --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-Item.c @@ -0,0 +1,139 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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) */ + { 0, &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_8231P59, + 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/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-Item.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-Item.h new file mode 100644 index 0000000..d6cb37b --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-Item.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_SgNBModReq_Item_H_ +#define _E_RABs_ToBeReleased_SgNBModReq_Item_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "EN-DC-ResourceConfiguration.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-List.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-List.c new file mode 100644 index 0000000..939fa84 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-ToBeReleased-SgNBModReq-List.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P32, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-List.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-List.h new file mode 100644 index 0000000..0e00db2 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReq-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_SgNBModReq_List_H_ +#define _E_RABs_ToBeReleased_SgNBModReq_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReqd-Item.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReqd-Item.c new file mode 100644 index 0000000..c05c7f5 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReqd-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P71, + 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/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReqd-Item.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReqd-Item.h new file mode 100644 index 0000000..fe0ebda --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReqd-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_SgNBModReqd_Item_H_ +#define _E_RABs_ToBeReleased_SgNBModReqd_Item_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "Cause.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReqdList.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReqdList.c new file mode 100644 index 0000000..762ad25 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReqdList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-ToBeReleased-SgNBModReqdList.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P36, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReqdList.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReqdList.h new file mode 100644 index 0000000..06a6c74 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBModReqdList.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_SgNBModReqdList_H_ +#define _E_RABs_ToBeReleased_SgNBModReqdList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.c new file mode 100644 index 0000000..9ca9d99 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P85, + 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/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.h new file mode 100644 index 0000000..96ecc10 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_H_ +#define _E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.c new file mode 100644 index 0000000..7e3f1a4 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P84, + 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/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.h new file mode 100644 index 0000000..4dfd4be --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_H_ +#define _E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConf-Item.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConf-Item.c new file mode 100644 index 0000000..b776d49 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConf-Item.c @@ -0,0 +1,139 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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) */ + { 0, &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_8231P83, + 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/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConf-Item.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConf-Item.h new file mode 100644 index 0000000..8dcc884 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConf-Item.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_SgNBRelConf_Item_H_ +#define _E_RABs_ToBeReleased_SgNBRelConf_Item_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "EN-DC-ResourceConfiguration.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConfList.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConfList.c new file mode 100644 index 0000000..a52fa6e --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConfList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-ToBeReleased-SgNBRelConfList.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P42, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConfList.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConfList.h new file mode 100644 index 0000000..0fd5f49 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelConfList.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_SgNBRelConfList_H_ +#define _E_RABs_ToBeReleased_SgNBRelConfList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.c new file mode 100644 index 0000000..6fcf244 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P80, + 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/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.h new file mode 100644 index 0000000..6286737 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_H_ +#define _E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.c new file mode 100644 index 0000000..9993bc2 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P79, + 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/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.h new file mode 100644 index 0000000..e120727 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_H_ +#define _E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReq-Item.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReq-Item.c new file mode 100644 index 0000000..abc9017 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReq-Item.c @@ -0,0 +1,139 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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) */ + { 0, &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_8231P78, + 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/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReq-Item.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReq-Item.h new file mode 100644 index 0000000..c32351b --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReq-Item.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_SgNBRelReq_Item_H_ +#define _E_RABs_ToBeReleased_SgNBRelReq_Item_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "EN-DC-ResourceConfiguration.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReqList.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReqList.c new file mode 100644 index 0000000..f25f771 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReqList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-ToBeReleased-SgNBRelReqList.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P39, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReqList.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReqList.h new file mode 100644 index 0000000..c89adc3 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReqList.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_SgNBRelReqList_H_ +#define _E_RABs_ToBeReleased_SgNBRelReqList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReqd-Item.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReqd-Item.c new file mode 100644 index 0000000..4493810 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReqd-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P82, + 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/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReqd-Item.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReqd-Item.h new file mode 100644 index 0000000..2c13ac9 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReqd-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_SgNBRelReqd_Item_H_ +#define _E_RABs_ToBeReleased_SgNBRelReqd_Item_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "RLCMode.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReqdList.c b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReqdList.c new file mode 100644 index 0000000..c297825 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReqdList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-ToBeReleased-SgNBRelReqdList.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P41, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReqdList.h b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReqdList.h new file mode 100644 index 0000000..a68c09d --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeReleased-SgNBRelReqdList.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeReleased_SgNBRelReqdList_H_ +#define _E_RABs_ToBeReleased_SgNBRelReqdList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeSetup-Item.c b/asn1c_defs/all-defs/E-RABs-ToBeSetup-Item.c new file mode 100644 index 0000000..e007ee9 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeSetup-Item.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P1, + 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/asn1c_defs/all-defs/E-RABs-ToBeSetup-Item.h b/asn1c_defs/all-defs/E-RABs-ToBeSetup-Item.h new file mode 100644 index 0000000..fb26b5d --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeSetup-Item.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeSetup_Item_H_ +#define _E_RABs_ToBeSetup_Item_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "E-RAB-Level-QoS-Parameters.h" +#include "DL-Forwarding.h" +#include "GTPtunnelEndpoint.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeSetup-List.c b/asn1c_defs/all-defs/E-RABs-ToBeSetup-List.c new file mode 100644 index 0000000..01fe4e3 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeSetup-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-ToBeSetup-List.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P6, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-ToBeSetup-List.h b/asn1c_defs/all-defs/E-RABs-ToBeSetup-List.h new file mode 100644 index 0000000..5dd9dc8 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeSetup-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeSetup_List_H_ +#define _E_RABs_ToBeSetup_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeSetup-ListRetrieve.c b/asn1c_defs/all-defs/E-RABs-ToBeSetup-ListRetrieve.c new file mode 100644 index 0000000..e69cd11 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeSetup-ListRetrieve.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E-RABs-ToBeSetup-ListRetrieve.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P27, + 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 */ + { 0, &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/asn1c_defs/all-defs/E-RABs-ToBeSetup-ListRetrieve.h b/asn1c_defs/all-defs/E-RABs-ToBeSetup-ListRetrieve.h new file mode 100644 index 0000000..fda5b36 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeSetup-ListRetrieve.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeSetup_ListRetrieve_H_ +#define _E_RABs_ToBeSetup_ListRetrieve_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E-RABs-ToBeSetupRetrieve-Item.c b/asn1c_defs/all-defs/E-RABs-ToBeSetupRetrieve-Item.c new file mode 100644 index 0000000..c7bcfd6 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeSetupRetrieve-Item.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P43, + 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/asn1c_defs/all-defs/E-RABs-ToBeSetupRetrieve-Item.h b/asn1c_defs/all-defs/E-RABs-ToBeSetupRetrieve-Item.h new file mode 100644 index 0000000..11a0460 --- /dev/null +++ b/asn1c_defs/all-defs/E-RABs-ToBeSetupRetrieve-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E_RABs_ToBeSetupRetrieve_Item_H_ +#define _E_RABs_ToBeSetupRetrieve_Item_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "E-RAB-Level-QoS-Parameters.h" +#include "BearerType.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E2AP-PDU.c b/asn1c_defs/all-defs/E2AP-PDU.c new file mode 100644 index 0000000..41037cb --- /dev/null +++ b/asn1c_defs/all-defs/E2AP-PDU.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Descriptions" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "E2AP-PDU.h" + +#include "InitiatingMessage.h" +#include "SuccessfulOutcome.h" +#include "UnsuccessfulOutcome.h" +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_InitiatingMessage, + 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_SuccessfulOutcome, + 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_UnsuccessfulOutcome, + 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) */ + { 0, &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/asn1c_defs/all-defs/E2AP-PDU.h b/asn1c_defs/all-defs/E2AP-PDU.h new file mode 100644 index 0000000..7bafad1 --- /dev/null +++ b/asn1c_defs/all-defs/E2AP-PDU.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Descriptions" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E2AP_PDU_H_ +#define _E2AP_PDU_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 InitiatingMessage; +struct SuccessfulOutcome; +struct UnsuccessfulOutcome; + +/* E2AP-PDU */ +typedef struct E2AP_PDU { + E2AP_PDU_PR present; + union E2AP_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; +} E2AP_PDU_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2AP_PDU; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2AP_PDU_H_ */ +#include diff --git a/asn1c_defs/all-defs/E2SM-gNB-X2-actionDefinition.c b/asn1c_defs/all-defs/E2SM-gNB-X2-actionDefinition.c new file mode 100644 index 0000000..3f44981 --- /dev/null +++ b/asn1c_defs/all-defs/E2SM-gNB-X2-actionDefinition.c @@ -0,0 +1,136 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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 */ + { 0, &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, + { 0, &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/asn1c_defs/all-defs/E2SM-gNB-X2-actionDefinition.h b/asn1c_defs/all-defs/E2SM-gNB-X2-actionDefinition.h new file mode 100644 index 0000000..540af0f --- /dev/null +++ b/asn1c_defs/all-defs/E2SM-gNB-X2-actionDefinition.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E2SM_gNB_X2_actionDefinition_H_ +#define _E2SM_gNB_X2_actionDefinition_H_ + + +#include + +/* Including external dependencies */ +#include "Style-ID.h" +#include +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E2SM-gNB-X2-callProcessID.c b/asn1c_defs/all-defs/E2SM-gNB-X2-callProcessID.c new file mode 100644 index 0000000..011f413 --- /dev/null +++ b/asn1c_defs/all-defs/E2SM-gNB-X2-callProcessID.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/E2SM-gNB-X2-callProcessID.h b/asn1c_defs/all-defs/E2SM-gNB-X2-callProcessID.h new file mode 100644 index 0000000..2fefb96 --- /dev/null +++ b/asn1c_defs/all-defs/E2SM-gNB-X2-callProcessID.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E2SM_gNB_X2_callProcessID_H_ +#define _E2SM_gNB_X2_callProcessID_H_ + + +#include + +/* Including external dependencies */ +#include "CallProcess-ID.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E2SM-gNB-X2-controlHeader.c b/asn1c_defs/all-defs/E2SM-gNB-X2-controlHeader.c new file mode 100644 index 0000000..962775f --- /dev/null +++ b/asn1c_defs/all-defs/E2SM-gNB-X2-controlHeader.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/E2SM-gNB-X2-controlHeader.h b/asn1c_defs/all-defs/E2SM-gNB-X2-controlHeader.h new file mode 100644 index 0000000..76da0ba --- /dev/null +++ b/asn1c_defs/all-defs/E2SM-gNB-X2-controlHeader.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E2SM_gNB_X2_controlHeader_H_ +#define _E2SM_gNB_X2_controlHeader_H_ + + +#include + +/* Including external dependencies */ +#include "Interface-ID.h" +#include "InterfaceDirection.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E2SM-gNB-X2-controlMessage.c b/asn1c_defs/all-defs/E2SM-gNB-X2-controlMessage.c new file mode 100644 index 0000000..7226b5b --- /dev/null +++ b/asn1c_defs/all-defs/E2SM-gNB-X2-controlMessage.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/E2SM-gNB-X2-controlMessage.h b/asn1c_defs/all-defs/E2SM-gNB-X2-controlMessage.h new file mode 100644 index 0000000..d66ee31 --- /dev/null +++ b/asn1c_defs/all-defs/E2SM-gNB-X2-controlMessage.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E2SM_gNB_X2_controlMessage_H_ +#define _E2SM_gNB_X2_controlMessage_H_ + + +#include + +/* Including external dependencies */ +#include "InterfaceMessage.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E2SM-gNB-X2-eventTriggerDefinition.c b/asn1c_defs/all-defs/E2SM-gNB-X2-eventTriggerDefinition.c new file mode 100644 index 0000000..108ed17 --- /dev/null +++ b/asn1c_defs/all-defs/E2SM-gNB-X2-eventTriggerDefinition.c @@ -0,0 +1,156 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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 */ + { 0, &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, + { 0, &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/asn1c_defs/all-defs/E2SM-gNB-X2-eventTriggerDefinition.h b/asn1c_defs/all-defs/E2SM-gNB-X2-eventTriggerDefinition.h new file mode 100644 index 0000000..c390daf --- /dev/null +++ b/asn1c_defs/all-defs/E2SM-gNB-X2-eventTriggerDefinition.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E2SM_gNB_X2_eventTriggerDefinition_H_ +#define _E2SM_gNB_X2_eventTriggerDefinition_H_ + + +#include + +/* Including external dependencies */ +#include "Interface-ID.h" +#include "InterfaceDirection.h" +#include "InterfaceMessageType.h" +#include +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/E2SM-gNB-X2-indicationHeader.c b/asn1c_defs/all-defs/E2SM-gNB-X2-indicationHeader.c new file mode 100644 index 0000000..10fd8b3 --- /dev/null +++ b/asn1c_defs/all-defs/E2SM-gNB-X2-indicationHeader.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/E2SM-gNB-X2-indicationHeader.h b/asn1c_defs/all-defs/E2SM-gNB-X2-indicationHeader.h new file mode 100644 index 0000000..1a88eb7 --- /dev/null +++ b/asn1c_defs/all-defs/E2SM-gNB-X2-indicationHeader.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E2SM_gNB_X2_indicationHeader_H_ +#define _E2SM_gNB_X2_indicationHeader_H_ + + +#include + +/* Including external dependencies */ +#include "Interface-ID.h" +#include "InterfaceDirection.h" +#include "TimeStamp.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/E2SM-gNB-X2-indicationMessage.c b/asn1c_defs/all-defs/E2SM-gNB-X2-indicationMessage.c new file mode 100644 index 0000000..4dc8b41 --- /dev/null +++ b/asn1c_defs/all-defs/E2SM-gNB-X2-indicationMessage.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/E2SM-gNB-X2-indicationMessage.h b/asn1c_defs/all-defs/E2SM-gNB-X2-indicationMessage.h new file mode 100644 index 0000000..56df501 --- /dev/null +++ b/asn1c_defs/all-defs/E2SM-gNB-X2-indicationMessage.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _E2SM_gNB_X2_indicationMessage_H_ +#define _E2SM_gNB_X2_indicationMessage_H_ + + +#include + +/* Including external dependencies */ +#include "InterfaceMessage.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/EARFCN.c b/asn1c_defs/all-defs/EARFCN.c new file mode 100644 index 0000000..7bfe68c --- /dev/null +++ b/asn1c_defs/all-defs/EARFCN.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_EARFCN_constr_1, EARFCN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/EARFCN.h b/asn1c_defs/all-defs/EARFCN.h new file mode 100644 index 0000000..fe400c4 --- /dev/null +++ b/asn1c_defs/all-defs/EARFCN.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _EARFCN_H_ +#define _EARFCN_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/EARFCNExtension.c b/asn1c_defs/all-defs/EARFCNExtension.c new file mode 100644 index 0000000..3875d1f --- /dev/null +++ b/asn1c_defs/all-defs/EARFCNExtension.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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 */ + { 0, &asn_PER_type_EARFCNExtension_constr_1, EARFCNExtension_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/EARFCNExtension.h b/asn1c_defs/all-defs/EARFCNExtension.h new file mode 100644 index 0000000..f79b9a3 --- /dev/null +++ b/asn1c_defs/all-defs/EARFCNExtension.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _EARFCNExtension_H_ +#define _EARFCNExtension_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/ECGI.c b/asn1c_defs/all-defs/ECGI.c new file mode 100644 index 0000000..03740bf --- /dev/null +++ b/asn1c_defs/all-defs/ECGI.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P134, + 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/asn1c_defs/all-defs/ECGI.h b/asn1c_defs/all-defs/ECGI.h new file mode 100644 index 0000000..db60251 --- /dev/null +++ b/asn1c_defs/all-defs/ECGI.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ECGI_H_ +#define _ECGI_H_ + + +#include + +/* Including external dependencies */ +#include "PLMN-Identity.h" +#include "EUTRANCellIdentifier.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/EN-DC-ResourceConfiguration.c b/asn1c_defs/all-defs/EN-DC-ResourceConfiguration.c new file mode 100644 index 0000000..6b060c4 --- /dev/null +++ b/asn1c_defs/all-defs/EN-DC-ResourceConfiguration.c @@ -0,0 +1,227 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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_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 */ + { 0, &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 */ + { 0, &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 */ + { 0, &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_8231P137, + 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/asn1c_defs/all-defs/EN-DC-ResourceConfiguration.h b/asn1c_defs/all-defs/EN-DC-ResourceConfiguration.h new file mode 100644 index 0000000..a5eede3 --- /dev/null +++ b/asn1c_defs/all-defs/EN-DC-ResourceConfiguration.h @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _EN_DC_ResourceConfiguration_H_ +#define _EN_DC_ResourceConfiguration_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ENB-ID.c b/asn1c_defs/all-defs/ENB-ID.c new file mode 100644 index 0000000..8b162e8 --- /dev/null +++ b/asn1c_defs/all-defs/ENB-ID.c @@ -0,0 +1,226 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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_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_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 */ +}; +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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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) */ + { 0, &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/asn1c_defs/all-defs/ENB-ID.h b/asn1c_defs/all-defs/ENB-ID.h new file mode 100644 index 0000000..22b096f --- /dev/null +++ b/asn1c_defs/all-defs/ENB-ID.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ENB_ID_H_ +#define _ENB_ID_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ENBConfigurationUpdate.c b/asn1c_defs/all-defs/ENBConfigurationUpdate.c new file mode 100644 index 0000000..b322be8 --- /dev/null +++ b/asn1c_defs/all-defs/ENBConfigurationUpdate.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P28, + 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/asn1c_defs/all-defs/ENBConfigurationUpdate.h b/asn1c_defs/all-defs/ENBConfigurationUpdate.h new file mode 100644 index 0000000..c78a41b --- /dev/null +++ b/asn1c_defs/all-defs/ENBConfigurationUpdate.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ENBConfigurationUpdate_H_ +#define _ENBConfigurationUpdate_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ENBConfigurationUpdate */ +typedef struct ENBConfigurationUpdate { + ProtocolIE_Container_8180P28_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 diff --git a/asn1c_defs/all-defs/ENBConfigurationUpdateAcknowledge.c b/asn1c_defs/all-defs/ENBConfigurationUpdateAcknowledge.c new file mode 100644 index 0000000..4ffc8d3 --- /dev/null +++ b/asn1c_defs/all-defs/ENBConfigurationUpdateAcknowledge.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P29, + 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/asn1c_defs/all-defs/ENBConfigurationUpdateAcknowledge.h b/asn1c_defs/all-defs/ENBConfigurationUpdateAcknowledge.h new file mode 100644 index 0000000..a771480 --- /dev/null +++ b/asn1c_defs/all-defs/ENBConfigurationUpdateAcknowledge.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ENBConfigurationUpdateAcknowledge_H_ +#define _ENBConfigurationUpdateAcknowledge_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ENBConfigurationUpdateAcknowledge */ +typedef struct ENBConfigurationUpdateAcknowledge { + ProtocolIE_Container_8180P29_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 diff --git a/asn1c_defs/all-defs/ENBConfigurationUpdateFailure.c b/asn1c_defs/all-defs/ENBConfigurationUpdateFailure.c new file mode 100644 index 0000000..62c3622 --- /dev/null +++ b/asn1c_defs/all-defs/ENBConfigurationUpdateFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P30, + 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/asn1c_defs/all-defs/ENBConfigurationUpdateFailure.h b/asn1c_defs/all-defs/ENBConfigurationUpdateFailure.h new file mode 100644 index 0000000..b9a8dc0 --- /dev/null +++ b/asn1c_defs/all-defs/ENBConfigurationUpdateFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ENBConfigurationUpdateFailure_H_ +#define _ENBConfigurationUpdateFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ENBConfigurationUpdateFailure */ +typedef struct ENBConfigurationUpdateFailure { + ProtocolIE_Container_8180P30_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 diff --git a/asn1c_defs/all-defs/ENDCCellActivationFailure.c b/asn1c_defs/all-defs/ENDCCellActivationFailure.c new file mode 100644 index 0000000..aaf388f --- /dev/null +++ b/asn1c_defs/all-defs/ENDCCellActivationFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P100, + 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/asn1c_defs/all-defs/ENDCCellActivationFailure.h b/asn1c_defs/all-defs/ENDCCellActivationFailure.h new file mode 100644 index 0000000..aa25d17 --- /dev/null +++ b/asn1c_defs/all-defs/ENDCCellActivationFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ENDCCellActivationFailure_H_ +#define _ENDCCellActivationFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ENDCCellActivationFailure */ +typedef struct ENDCCellActivationFailure { + ProtocolIE_Container_8180P100_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 diff --git a/asn1c_defs/all-defs/ENDCCellActivationRequest.c b/asn1c_defs/all-defs/ENDCCellActivationRequest.c new file mode 100644 index 0000000..b71d56a --- /dev/null +++ b/asn1c_defs/all-defs/ENDCCellActivationRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P98, + 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/asn1c_defs/all-defs/ENDCCellActivationRequest.h b/asn1c_defs/all-defs/ENDCCellActivationRequest.h new file mode 100644 index 0000000..ffe801d --- /dev/null +++ b/asn1c_defs/all-defs/ENDCCellActivationRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ENDCCellActivationRequest_H_ +#define _ENDCCellActivationRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ENDCCellActivationRequest */ +typedef struct ENDCCellActivationRequest { + ProtocolIE_Container_8180P98_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 diff --git a/asn1c_defs/all-defs/ENDCCellActivationResponse.c b/asn1c_defs/all-defs/ENDCCellActivationResponse.c new file mode 100644 index 0000000..1e2dc13 --- /dev/null +++ b/asn1c_defs/all-defs/ENDCCellActivationResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P99, + 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/asn1c_defs/all-defs/ENDCCellActivationResponse.h b/asn1c_defs/all-defs/ENDCCellActivationResponse.h new file mode 100644 index 0000000..70f969a --- /dev/null +++ b/asn1c_defs/all-defs/ENDCCellActivationResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ENDCCellActivationResponse_H_ +#define _ENDCCellActivationResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ENDCCellActivationResponse */ +typedef struct ENDCCellActivationResponse { + ProtocolIE_Container_8180P99_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 diff --git a/asn1c_defs/all-defs/ENDCConfigurationUpdate.c b/asn1c_defs/all-defs/ENDCConfigurationUpdate.c new file mode 100644 index 0000000..b6feefb --- /dev/null +++ b/asn1c_defs/all-defs/ENDCConfigurationUpdate.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P91, + 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/asn1c_defs/all-defs/ENDCConfigurationUpdate.h b/asn1c_defs/all-defs/ENDCConfigurationUpdate.h new file mode 100644 index 0000000..526b6f0 --- /dev/null +++ b/asn1c_defs/all-defs/ENDCConfigurationUpdate.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ENDCConfigurationUpdate_H_ +#define _ENDCConfigurationUpdate_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ENDCConfigurationUpdate */ +typedef struct ENDCConfigurationUpdate { + ProtocolIE_Container_8180P91_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 diff --git a/asn1c_defs/all-defs/ENDCConfigurationUpdateAcknowledge.c b/asn1c_defs/all-defs/ENDCConfigurationUpdateAcknowledge.c new file mode 100644 index 0000000..8a6c3c5 --- /dev/null +++ b/asn1c_defs/all-defs/ENDCConfigurationUpdateAcknowledge.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P94, + 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/asn1c_defs/all-defs/ENDCConfigurationUpdateAcknowledge.h b/asn1c_defs/all-defs/ENDCConfigurationUpdateAcknowledge.h new file mode 100644 index 0000000..e46d93c --- /dev/null +++ b/asn1c_defs/all-defs/ENDCConfigurationUpdateAcknowledge.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ENDCConfigurationUpdateAcknowledge_H_ +#define _ENDCConfigurationUpdateAcknowledge_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ENDCConfigurationUpdateAcknowledge */ +typedef struct ENDCConfigurationUpdateAcknowledge { + ProtocolIE_Container_8180P94_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 diff --git a/asn1c_defs/all-defs/ENDCConfigurationUpdateFailure.c b/asn1c_defs/all-defs/ENDCConfigurationUpdateFailure.c new file mode 100644 index 0000000..53cda30 --- /dev/null +++ b/asn1c_defs/all-defs/ENDCConfigurationUpdateFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P97, + 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/asn1c_defs/all-defs/ENDCConfigurationUpdateFailure.h b/asn1c_defs/all-defs/ENDCConfigurationUpdateFailure.h new file mode 100644 index 0000000..848f1d6 --- /dev/null +++ b/asn1c_defs/all-defs/ENDCConfigurationUpdateFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ENDCConfigurationUpdateFailure_H_ +#define _ENDCConfigurationUpdateFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ENDCConfigurationUpdateFailure */ +typedef struct ENDCConfigurationUpdateFailure { + ProtocolIE_Container_8180P97_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 diff --git a/asn1c_defs/all-defs/ENDCPartialResetConfirm.c b/asn1c_defs/all-defs/ENDCPartialResetConfirm.c new file mode 100644 index 0000000..28d3a9a --- /dev/null +++ b/asn1c_defs/all-defs/ENDCPartialResetConfirm.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P104, + 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/asn1c_defs/all-defs/ENDCPartialResetConfirm.h b/asn1c_defs/all-defs/ENDCPartialResetConfirm.h new file mode 100644 index 0000000..175f555 --- /dev/null +++ b/asn1c_defs/all-defs/ENDCPartialResetConfirm.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ENDCPartialResetConfirm_H_ +#define _ENDCPartialResetConfirm_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ENDCPartialResetConfirm */ +typedef struct ENDCPartialResetConfirm { + ProtocolIE_Container_8180P104_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 diff --git a/asn1c_defs/all-defs/ENDCPartialResetRequired.c b/asn1c_defs/all-defs/ENDCPartialResetRequired.c new file mode 100644 index 0000000..26143c9 --- /dev/null +++ b/asn1c_defs/all-defs/ENDCPartialResetRequired.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P103, + 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/asn1c_defs/all-defs/ENDCPartialResetRequired.h b/asn1c_defs/all-defs/ENDCPartialResetRequired.h new file mode 100644 index 0000000..fd646ce --- /dev/null +++ b/asn1c_defs/all-defs/ENDCPartialResetRequired.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ENDCPartialResetRequired_H_ +#define _ENDCPartialResetRequired_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ENDCPartialResetRequired */ +typedef struct ENDCPartialResetRequired { + ProtocolIE_Container_8180P103_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 diff --git a/asn1c_defs/all-defs/ENDCX2RemovalFailure.c b/asn1c_defs/all-defs/ENDCX2RemovalFailure.c new file mode 100644 index 0000000..7fcb250 --- /dev/null +++ b/asn1c_defs/all-defs/ENDCX2RemovalFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P117, + 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/asn1c_defs/all-defs/ENDCX2RemovalFailure.h b/asn1c_defs/all-defs/ENDCX2RemovalFailure.h new file mode 100644 index 0000000..debf8bd --- /dev/null +++ b/asn1c_defs/all-defs/ENDCX2RemovalFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ENDCX2RemovalFailure_H_ +#define _ENDCX2RemovalFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ENDCX2RemovalFailure */ +typedef struct ENDCX2RemovalFailure { + ProtocolIE_Container_8180P117_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 diff --git a/asn1c_defs/all-defs/ENDCX2RemovalRequest.c b/asn1c_defs/all-defs/ENDCX2RemovalRequest.c new file mode 100644 index 0000000..738d95e --- /dev/null +++ b/asn1c_defs/all-defs/ENDCX2RemovalRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P111, + 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/asn1c_defs/all-defs/ENDCX2RemovalRequest.h b/asn1c_defs/all-defs/ENDCX2RemovalRequest.h new file mode 100644 index 0000000..1975fce --- /dev/null +++ b/asn1c_defs/all-defs/ENDCX2RemovalRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ENDCX2RemovalRequest_H_ +#define _ENDCX2RemovalRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ENDCX2RemovalRequest */ +typedef struct ENDCX2RemovalRequest { + ProtocolIE_Container_8180P111_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 diff --git a/asn1c_defs/all-defs/ENDCX2RemovalResponse.c b/asn1c_defs/all-defs/ENDCX2RemovalResponse.c new file mode 100644 index 0000000..af3a63a --- /dev/null +++ b/asn1c_defs/all-defs/ENDCX2RemovalResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P114, + 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/asn1c_defs/all-defs/ENDCX2RemovalResponse.h b/asn1c_defs/all-defs/ENDCX2RemovalResponse.h new file mode 100644 index 0000000..c2168f6 --- /dev/null +++ b/asn1c_defs/all-defs/ENDCX2RemovalResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ENDCX2RemovalResponse_H_ +#define _ENDCX2RemovalResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ENDCX2RemovalResponse */ +typedef struct ENDCX2RemovalResponse { + ProtocolIE_Container_8180P114_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 diff --git a/asn1c_defs/all-defs/ENDCX2SetupFailure.c b/asn1c_defs/all-defs/ENDCX2SetupFailure.c new file mode 100644 index 0000000..8c42dfa --- /dev/null +++ b/asn1c_defs/all-defs/ENDCX2SetupFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P90, + 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/asn1c_defs/all-defs/ENDCX2SetupFailure.h b/asn1c_defs/all-defs/ENDCX2SetupFailure.h new file mode 100644 index 0000000..bb94250 --- /dev/null +++ b/asn1c_defs/all-defs/ENDCX2SetupFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ENDCX2SetupFailure_H_ +#define _ENDCX2SetupFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ENDCX2SetupFailure */ +typedef struct ENDCX2SetupFailure { + ProtocolIE_Container_8180P90_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 diff --git a/asn1c_defs/all-defs/ENDCX2SetupRequest.c b/asn1c_defs/all-defs/ENDCX2SetupRequest.c new file mode 100644 index 0000000..59dd9ff --- /dev/null +++ b/asn1c_defs/all-defs/ENDCX2SetupRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P84, + 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/asn1c_defs/all-defs/ENDCX2SetupRequest.h b/asn1c_defs/all-defs/ENDCX2SetupRequest.h new file mode 100644 index 0000000..b6dc89a --- /dev/null +++ b/asn1c_defs/all-defs/ENDCX2SetupRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ENDCX2SetupRequest_H_ +#define _ENDCX2SetupRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ENDCX2SetupRequest */ +typedef struct ENDCX2SetupRequest { + ProtocolIE_Container_8180P84_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 diff --git a/asn1c_defs/all-defs/ENDCX2SetupResponse.c b/asn1c_defs/all-defs/ENDCX2SetupResponse.c new file mode 100644 index 0000000..b71c605 --- /dev/null +++ b/asn1c_defs/all-defs/ENDCX2SetupResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P87, + 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/asn1c_defs/all-defs/ENDCX2SetupResponse.h b/asn1c_defs/all-defs/ENDCX2SetupResponse.h new file mode 100644 index 0000000..288933d --- /dev/null +++ b/asn1c_defs/all-defs/ENDCX2SetupResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ENDCX2SetupResponse_H_ +#define _ENDCX2SetupResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ENDCX2SetupResponse */ +typedef struct ENDCX2SetupResponse { + ProtocolIE_Container_8180P87_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 diff --git a/asn1c_defs/all-defs/EPLMNs.c b/asn1c_defs/all-defs/EPLMNs.c new file mode 100644 index 0000000..4bc23ee --- /dev/null +++ b/asn1c_defs/all-defs/EPLMNs.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "EPLMNs.h" + +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 */ + { 0, &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/asn1c_defs/all-defs/EPLMNs.h b/asn1c_defs/all-defs/EPLMNs.h new file mode 100644 index 0000000..647766a --- /dev/null +++ b/asn1c_defs/all-defs/EPLMNs.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _EPLMNs_H_ +#define _EPLMNs_H_ + + +#include + +/* Including external dependencies */ +#include "PLMN-Identity.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ERABActivityNotifyItem.c b/asn1c_defs/all-defs/ERABActivityNotifyItem.c new file mode 100644 index 0000000..070bb1d --- /dev/null +++ b/asn1c_defs/all-defs/ERABActivityNotifyItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P138, + 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/asn1c_defs/all-defs/ERABActivityNotifyItem.h b/asn1c_defs/all-defs/ERABActivityNotifyItem.h new file mode 100644 index 0000000..8687137 --- /dev/null +++ b/asn1c_defs/all-defs/ERABActivityNotifyItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ERABActivityNotifyItem_H_ +#define _ERABActivityNotifyItem_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include "UserPlaneTrafficActivityReport.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/ERABActivityNotifyItemList.c b/asn1c_defs/all-defs/ERABActivityNotifyItemList.c new file mode 100644 index 0000000..cb31cd5 --- /dev/null +++ b/asn1c_defs/all-defs/ERABActivityNotifyItemList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ERABActivityNotifyItemList.h" + +#include "ERABActivityNotifyItem.h" +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 */ + { 0, &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/asn1c_defs/all-defs/ERABActivityNotifyItemList.h b/asn1c_defs/all-defs/ERABActivityNotifyItemList.h new file mode 100644 index 0000000..3a24217 --- /dev/null +++ b/asn1c_defs/all-defs/ERABActivityNotifyItemList.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ERABActivityNotifyItemList_H_ +#define _ERABActivityNotifyItemList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/EUTRA-Mode-Info.c b/asn1c_defs/all-defs/EUTRA-Mode-Info.c new file mode 100644 index 0000000..534f07c --- /dev/null +++ b/asn1c_defs/all-defs/EUTRA-Mode-Info.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "EUTRA-Mode-Info.h" + +#include "FDD-Info.h" +#include "TDD-Info.h" +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) */ + { 0, &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/asn1c_defs/all-defs/EUTRA-Mode-Info.h b/asn1c_defs/all-defs/EUTRA-Mode-Info.h new file mode 100644 index 0000000..87fa6d1 --- /dev/null +++ b/asn1c_defs/all-defs/EUTRA-Mode-Info.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _EUTRA_Mode_Info_H_ +#define _EUTRA_Mode_Info_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/EUTRANCellIdentifier.c b/asn1c_defs/all-defs/EUTRANCellIdentifier.c new file mode 100644 index 0000000..1ac61a9 --- /dev/null +++ b/asn1c_defs/all-defs/EUTRANCellIdentifier.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_EUTRANCellIdentifier_constr_1, EUTRANCellIdentifier_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/EUTRANCellIdentifier.h b/asn1c_defs/all-defs/EUTRANCellIdentifier.h new file mode 100644 index 0000000..5398da7 --- /dev/null +++ b/asn1c_defs/all-defs/EUTRANCellIdentifier.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _EUTRANCellIdentifier_H_ +#define _EUTRANCellIdentifier_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/EUTRANRCellResourceCoordinationRequest.c b/asn1c_defs/all-defs/EUTRANRCellResourceCoordinationRequest.c new file mode 100644 index 0000000..6da0e23 --- /dev/null +++ b/asn1c_defs/all-defs/EUTRANRCellResourceCoordinationRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P105, + 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/asn1c_defs/all-defs/EUTRANRCellResourceCoordinationRequest.h b/asn1c_defs/all-defs/EUTRANRCellResourceCoordinationRequest.h new file mode 100644 index 0000000..19ad054 --- /dev/null +++ b/asn1c_defs/all-defs/EUTRANRCellResourceCoordinationRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _EUTRANRCellResourceCoordinationRequest_H_ +#define _EUTRANRCellResourceCoordinationRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EUTRANRCellResourceCoordinationRequest */ +typedef struct EUTRANRCellResourceCoordinationRequest { + ProtocolIE_Container_8180P105_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 diff --git a/asn1c_defs/all-defs/EUTRANRCellResourceCoordinationResponse.c b/asn1c_defs/all-defs/EUTRANRCellResourceCoordinationResponse.c new file mode 100644 index 0000000..a1d14ef --- /dev/null +++ b/asn1c_defs/all-defs/EUTRANRCellResourceCoordinationResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P108, + 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/asn1c_defs/all-defs/EUTRANRCellResourceCoordinationResponse.h b/asn1c_defs/all-defs/EUTRANRCellResourceCoordinationResponse.h new file mode 100644 index 0000000..152dcbe --- /dev/null +++ b/asn1c_defs/all-defs/EUTRANRCellResourceCoordinationResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _EUTRANRCellResourceCoordinationResponse_H_ +#define _EUTRANRCellResourceCoordinationResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EUTRANRCellResourceCoordinationResponse */ +typedef struct EUTRANRCellResourceCoordinationResponse { + ProtocolIE_Container_8180P108_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 diff --git a/asn1c_defs/all-defs/EUTRANTraceID.c b/asn1c_defs/all-defs/EUTRANTraceID.c new file mode 100644 index 0000000..0be18eb --- /dev/null +++ b/asn1c_defs/all-defs/EUTRANTraceID.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_EUTRANTraceID_constr_1, EUTRANTraceID_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/EUTRANTraceID.h b/asn1c_defs/all-defs/EUTRANTraceID.h new file mode 100644 index 0000000..142c4ac --- /dev/null +++ b/asn1c_defs/all-defs/EUTRANTraceID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _EUTRANTraceID_H_ +#define _EUTRANTraceID_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/EncryptionAlgorithms.c b/asn1c_defs/all-defs/EncryptionAlgorithms.c new file mode 100644 index 0000000..fc7b8f5 --- /dev/null +++ b/asn1c_defs/all-defs/EncryptionAlgorithms.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_EncryptionAlgorithms_constr_1, EncryptionAlgorithms_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/EncryptionAlgorithms.h b/asn1c_defs/all-defs/EncryptionAlgorithms.h new file mode 100644 index 0000000..88ecc14 --- /dev/null +++ b/asn1c_defs/all-defs/EncryptionAlgorithms.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _EncryptionAlgorithms_H_ +#define _EncryptionAlgorithms_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/EnhancedRNTP.c b/asn1c_defs/all-defs/EnhancedRNTP.c new file mode 100644 index 0000000..c10467c --- /dev/null +++ b/asn1c_defs/all-defs/EnhancedRNTP.c @@ -0,0 +1,120 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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, + { 0, &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_8231P135, + 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/asn1c_defs/all-defs/EnhancedRNTP.h b/asn1c_defs/all-defs/EnhancedRNTP.h new file mode 100644 index 0000000..65dc392 --- /dev/null +++ b/asn1c_defs/all-defs/EnhancedRNTP.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _EnhancedRNTP_H_ +#define _EnhancedRNTP_H_ + + +#include + +/* Including external dependencies */ +#include +#include "RNTP-Threshold.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/EnhancedRNTPStartTime.c b/asn1c_defs/all-defs/EnhancedRNTPStartTime.c new file mode 100644 index 0000000..c6d5e84 --- /dev/null +++ b/asn1c_defs/all-defs/EnhancedRNTPStartTime.c @@ -0,0 +1,133 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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, + { 0, &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, + { 0, &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_8231P136, + 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/asn1c_defs/all-defs/EnhancedRNTPStartTime.h b/asn1c_defs/all-defs/EnhancedRNTPStartTime.h new file mode 100644 index 0000000..79d6ea4 --- /dev/null +++ b/asn1c_defs/all-defs/EnhancedRNTPStartTime.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _EnhancedRNTPStartTime_H_ +#define _EnhancedRNTPStartTime_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ErrorIndication.c b/asn1c_defs/all-defs/ErrorIndication.c new file mode 100644 index 0000000..ea06bc0 --- /dev/null +++ b/asn1c_defs/all-defs/ErrorIndication.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P21, + 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/asn1c_defs/all-defs/ErrorIndication.h b/asn1c_defs/all-defs/ErrorIndication.h new file mode 100644 index 0000000..6e6aa6a --- /dev/null +++ b/asn1c_defs/all-defs/ErrorIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ErrorIndication_H_ +#define _ErrorIndication_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ErrorIndication */ +typedef struct ErrorIndication { + ProtocolIE_Container_8180P21_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 diff --git a/asn1c_defs/all-defs/EventType.c b/asn1c_defs/all-defs/EventType.c new file mode 100644 index 0000000..4355e4d --- /dev/null +++ b/asn1c_defs/all-defs/EventType.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "EventType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_EventType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EventType_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/EventType.h b/asn1c_defs/all-defs/EventType.h new file mode 100644 index 0000000..36f58bb --- /dev/null +++ b/asn1c_defs/all-defs/EventType.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _EventType_H_ +#define _EventType_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/ExpectedActivityPeriod.c b/asn1c_defs/all-defs/ExpectedActivityPeriod.c new file mode 100644 index 0000000..de59d85 --- /dev/null +++ b/asn1c_defs/all-defs/ExpectedActivityPeriod.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_ExpectedActivityPeriod_constr_1, ExpectedActivityPeriod_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/ExpectedActivityPeriod.h b/asn1c_defs/all-defs/ExpectedActivityPeriod.h new file mode 100644 index 0000000..76d2950 --- /dev/null +++ b/asn1c_defs/all-defs/ExpectedActivityPeriod.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ExpectedActivityPeriod_H_ +#define _ExpectedActivityPeriod_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/ExpectedHOInterval.c b/asn1c_defs/all-defs/ExpectedHOInterval.c new file mode 100644 index 0000000..b41fbbb --- /dev/null +++ b/asn1c_defs/all-defs/ExpectedHOInterval.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ExpectedHOInterval.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_ExpectedHOInterval_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ExpectedHOInterval_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/ExpectedHOInterval.h b/asn1c_defs/all-defs/ExpectedHOInterval.h new file mode 100644 index 0000000..f7719c4 --- /dev/null +++ b/asn1c_defs/all-defs/ExpectedHOInterval.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ExpectedHOInterval_H_ +#define _ExpectedHOInterval_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/ExpectedIdlePeriod.c b/asn1c_defs/all-defs/ExpectedIdlePeriod.c new file mode 100644 index 0000000..ceaf5dd --- /dev/null +++ b/asn1c_defs/all-defs/ExpectedIdlePeriod.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_ExpectedIdlePeriod_constr_1, ExpectedIdlePeriod_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/ExpectedIdlePeriod.h b/asn1c_defs/all-defs/ExpectedIdlePeriod.h new file mode 100644 index 0000000..076b10f --- /dev/null +++ b/asn1c_defs/all-defs/ExpectedIdlePeriod.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ExpectedIdlePeriod_H_ +#define _ExpectedIdlePeriod_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/ExpectedUEActivityBehaviour.c b/asn1c_defs/all-defs/ExpectedUEActivityBehaviour.c new file mode 100644 index 0000000..46a3726 --- /dev/null +++ b/asn1c_defs/all-defs/ExpectedUEActivityBehaviour.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P143, + 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/asn1c_defs/all-defs/ExpectedUEActivityBehaviour.h b/asn1c_defs/all-defs/ExpectedUEActivityBehaviour.h new file mode 100644 index 0000000..fc09cb6 --- /dev/null +++ b/asn1c_defs/all-defs/ExpectedUEActivityBehaviour.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ExpectedUEActivityBehaviour_H_ +#define _ExpectedUEActivityBehaviour_H_ + + +#include + +/* Including external dependencies */ +#include "ExpectedActivityPeriod.h" +#include "ExpectedIdlePeriod.h" +#include "SourceOfUEActivityBehaviourInformation.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/ExpectedUEBehaviour.c b/asn1c_defs/all-defs/ExpectedUEBehaviour.c new file mode 100644 index 0000000..a90ebb8 --- /dev/null +++ b/asn1c_defs/all-defs/ExpectedUEBehaviour.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P142, + 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/asn1c_defs/all-defs/ExpectedUEBehaviour.h b/asn1c_defs/all-defs/ExpectedUEBehaviour.h new file mode 100644 index 0000000..7634015 --- /dev/null +++ b/asn1c_defs/all-defs/ExpectedUEBehaviour.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ExpectedUEBehaviour_H_ +#define _ExpectedUEBehaviour_H_ + + +#include + +/* Including external dependencies */ +#include "ExpectedHOInterval.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/ExtendedBitRate.c b/asn1c_defs/all-defs/ExtendedBitRate.c new file mode 100644 index 0000000..2526bcc --- /dev/null +++ b/asn1c_defs/all-defs/ExtendedBitRate.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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 */ + { 0, &asn_PER_type_ExtendedBitRate_constr_1, ExtendedBitRate_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/ExtendedBitRate.h b/asn1c_defs/all-defs/ExtendedBitRate.h new file mode 100644 index 0000000..e7f996f --- /dev/null +++ b/asn1c_defs/all-defs/ExtendedBitRate.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ExtendedBitRate_H_ +#define _ExtendedBitRate_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/ExtendedULInterferenceOverloadInfo.c b/asn1c_defs/all-defs/ExtendedULInterferenceOverloadInfo.c new file mode 100644 index 0000000..b2a8bac --- /dev/null +++ b/asn1c_defs/all-defs/ExtendedULInterferenceOverloadInfo.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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, + { 0, &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_8231P144, + 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/asn1c_defs/all-defs/ExtendedULInterferenceOverloadInfo.h b/asn1c_defs/all-defs/ExtendedULInterferenceOverloadInfo.h new file mode 100644 index 0000000..6f49a28 --- /dev/null +++ b/asn1c_defs/all-defs/ExtendedULInterferenceOverloadInfo.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ExtendedULInterferenceOverloadInfo_H_ +#define _ExtendedULInterferenceOverloadInfo_H_ + + +#include + +/* Including external dependencies */ +#include +#include "UL-InterferenceOverloadIndication.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/FDD-Info.c b/asn1c_defs/all-defs/FDD-Info.c new file mode 100644 index 0000000..a93f446 --- /dev/null +++ b/asn1c_defs/all-defs/FDD-Info.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P145, + 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/asn1c_defs/all-defs/FDD-Info.h b/asn1c_defs/all-defs/FDD-Info.h new file mode 100644 index 0000000..5dea675 --- /dev/null +++ b/asn1c_defs/all-defs/FDD-Info.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _FDD_Info_H_ +#define _FDD_Info_H_ + + +#include + +/* Including external dependencies */ +#include "EARFCN.h" +#include "Transmission-Bandwidth.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/FDD-InfoNeighbourServedNRCell-Information.c b/asn1c_defs/all-defs/FDD-InfoNeighbourServedNRCell-Information.c new file mode 100644 index 0000000..6a419ad --- /dev/null +++ b/asn1c_defs/all-defs/FDD-InfoNeighbourServedNRCell-Information.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P94, + 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/asn1c_defs/all-defs/FDD-InfoNeighbourServedNRCell-Information.h b/asn1c_defs/all-defs/FDD-InfoNeighbourServedNRCell-Information.h new file mode 100644 index 0000000..5f7101c --- /dev/null +++ b/asn1c_defs/all-defs/FDD-InfoNeighbourServedNRCell-Information.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _FDD_InfoNeighbourServedNRCell_Information_H_ +#define _FDD_InfoNeighbourServedNRCell_Information_H_ + + +#include + +/* Including external dependencies */ +#include "NRFreqInfo.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/FDD-InfoServedNRCell-Information.c b/asn1c_defs/all-defs/FDD-InfoServedNRCell-Information.c new file mode 100644 index 0000000..c923d9b --- /dev/null +++ b/asn1c_defs/all-defs/FDD-InfoServedNRCell-Information.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P93, + 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/asn1c_defs/all-defs/FDD-InfoServedNRCell-Information.h b/asn1c_defs/all-defs/FDD-InfoServedNRCell-Information.h new file mode 100644 index 0000000..47cd3fa --- /dev/null +++ b/asn1c_defs/all-defs/FDD-InfoServedNRCell-Information.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _FDD_InfoServedNRCell_Information_H_ +#define _FDD_InfoServedNRCell_Information_H_ + + +#include + +/* Including external dependencies */ +#include "NRFreqInfo.h" +#include "NR-TxBW.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/FiveGS-TAC.c b/asn1c_defs/all-defs/FiveGS-TAC.c new file mode 100644 index 0000000..6f33aca --- /dev/null +++ b/asn1c_defs/all-defs/FiveGS-TAC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_FiveGS_TAC_constr_1, FiveGS_TAC_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/FiveGS-TAC.h b/asn1c_defs/all-defs/FiveGS-TAC.h new file mode 100644 index 0000000..b593eed --- /dev/null +++ b/asn1c_defs/all-defs/FiveGS-TAC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _FiveGS_TAC_H_ +#define _FiveGS_TAC_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/ForbiddenInterRATs.c b/asn1c_defs/all-defs/ForbiddenInterRATs.c new file mode 100644 index 0000000..e698aac --- /dev/null +++ b/asn1c_defs/all-defs/ForbiddenInterRATs.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ForbiddenInterRATs.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_ForbiddenInterRATs_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ForbiddenInterRATs_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/ForbiddenInterRATs.h b/asn1c_defs/all-defs/ForbiddenInterRATs.h new file mode 100644 index 0000000..1ccfd00 --- /dev/null +++ b/asn1c_defs/all-defs/ForbiddenInterRATs.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ForbiddenInterRATs_H_ +#define _ForbiddenInterRATs_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/ForbiddenLACs.c b/asn1c_defs/all-defs/ForbiddenLACs.c new file mode 100644 index 0000000..36e3791 --- /dev/null +++ b/asn1c_defs/all-defs/ForbiddenLACs.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ForbiddenLACs.h" + +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 */ + { 0, &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/asn1c_defs/all-defs/ForbiddenLACs.h b/asn1c_defs/all-defs/ForbiddenLACs.h new file mode 100644 index 0000000..c1b439c --- /dev/null +++ b/asn1c_defs/all-defs/ForbiddenLACs.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ForbiddenLACs_H_ +#define _ForbiddenLACs_H_ + + +#include + +/* Including external dependencies */ +#include "LAC.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ForbiddenLAs-Item.c b/asn1c_defs/all-defs/ForbiddenLAs-Item.c new file mode 100644 index 0000000..f233a73 --- /dev/null +++ b/asn1c_defs/all-defs/ForbiddenLAs-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P147, + 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/asn1c_defs/all-defs/ForbiddenLAs-Item.h b/asn1c_defs/all-defs/ForbiddenLAs-Item.h new file mode 100644 index 0000000..66146d4 --- /dev/null +++ b/asn1c_defs/all-defs/ForbiddenLAs-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ForbiddenLAs_Item_H_ +#define _ForbiddenLAs_Item_H_ + + +#include + +/* Including external dependencies */ +#include "PLMN-Identity.h" +#include "ForbiddenLACs.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/ForbiddenLAs.c b/asn1c_defs/all-defs/ForbiddenLAs.c new file mode 100644 index 0000000..9aadb88 --- /dev/null +++ b/asn1c_defs/all-defs/ForbiddenLAs.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ForbiddenLAs.h" + +#include "ForbiddenLAs-Item.h" +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 */ + { 0, &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/asn1c_defs/all-defs/ForbiddenLAs.h b/asn1c_defs/all-defs/ForbiddenLAs.h new file mode 100644 index 0000000..da8f5a4 --- /dev/null +++ b/asn1c_defs/all-defs/ForbiddenLAs.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ForbiddenLAs_H_ +#define _ForbiddenLAs_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ForbiddenTACs.c b/asn1c_defs/all-defs/ForbiddenTACs.c new file mode 100644 index 0000000..a5a9087 --- /dev/null +++ b/asn1c_defs/all-defs/ForbiddenTACs.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ForbiddenTACs.h" + +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 */ + { 0, &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/asn1c_defs/all-defs/ForbiddenTACs.h b/asn1c_defs/all-defs/ForbiddenTACs.h new file mode 100644 index 0000000..0216ea7 --- /dev/null +++ b/asn1c_defs/all-defs/ForbiddenTACs.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ForbiddenTACs_H_ +#define _ForbiddenTACs_H_ + + +#include + +/* Including external dependencies */ +#include "TAC.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ForbiddenTAs-Item.c b/asn1c_defs/all-defs/ForbiddenTAs-Item.c new file mode 100644 index 0000000..3370483 --- /dev/null +++ b/asn1c_defs/all-defs/ForbiddenTAs-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P146, + 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/asn1c_defs/all-defs/ForbiddenTAs-Item.h b/asn1c_defs/all-defs/ForbiddenTAs-Item.h new file mode 100644 index 0000000..0245f99 --- /dev/null +++ b/asn1c_defs/all-defs/ForbiddenTAs-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ForbiddenTAs_Item_H_ +#define _ForbiddenTAs_Item_H_ + + +#include + +/* Including external dependencies */ +#include "PLMN-Identity.h" +#include "ForbiddenTACs.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/ForbiddenTAs.c b/asn1c_defs/all-defs/ForbiddenTAs.c new file mode 100644 index 0000000..7c7c1e6 --- /dev/null +++ b/asn1c_defs/all-defs/ForbiddenTAs.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ForbiddenTAs.h" + +#include "ForbiddenTAs-Item.h" +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 */ + { 0, &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/asn1c_defs/all-defs/ForbiddenTAs.h b/asn1c_defs/all-defs/ForbiddenTAs.h new file mode 100644 index 0000000..33e5fe4 --- /dev/null +++ b/asn1c_defs/all-defs/ForbiddenTAs.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ForbiddenTAs_H_ +#define _ForbiddenTAs_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/Fourframes.c b/asn1c_defs/all-defs/Fourframes.c new file mode 100644 index 0000000..4ea6174 --- /dev/null +++ b/asn1c_defs/all-defs/Fourframes.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_Fourframes_constr_1, Fourframes_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/Fourframes.h b/asn1c_defs/all-defs/Fourframes.h new file mode 100644 index 0000000..0fb1242 --- /dev/null +++ b/asn1c_defs/all-defs/Fourframes.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _Fourframes_H_ +#define _Fourframes_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/FreqBandIndicator.c b/asn1c_defs/all-defs/FreqBandIndicator.c new file mode 100644 index 0000000..8bbbfa7 --- /dev/null +++ b/asn1c_defs/all-defs/FreqBandIndicator.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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 <= 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. + */ +asn_per_constraints_t asn_PER_type_FreqBandIndicator_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 255 } /* (1..255,...) */, + { 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 */ + { 0, &asn_PER_type_FreqBandIndicator_constr_1, FreqBandIndicator_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/FreqBandIndicator.h b/asn1c_defs/all-defs/FreqBandIndicator.h new file mode 100644 index 0000000..ea180c7 --- /dev/null +++ b/asn1c_defs/all-defs/FreqBandIndicator.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _FreqBandIndicator_H_ +#define _FreqBandIndicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/FreqBandIndicatorPriority.c b/asn1c_defs/all-defs/FreqBandIndicatorPriority.c new file mode 100644 index 0000000..5099cea --- /dev/null +++ b/asn1c_defs/all-defs/FreqBandIndicatorPriority.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "FreqBandIndicatorPriority.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_FreqBandIndicatorPriority_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_FreqBandIndicatorPriority_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/FreqBandIndicatorPriority.h b/asn1c_defs/all-defs/FreqBandIndicatorPriority.h new file mode 100644 index 0000000..2adbf8e --- /dev/null +++ b/asn1c_defs/all-defs/FreqBandIndicatorPriority.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _FreqBandIndicatorPriority_H_ +#define _FreqBandIndicatorPriority_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/FreqBandNrItem.c b/asn1c_defs/all-defs/FreqBandNrItem.c new file mode 100644 index 0000000..4a8e68a --- /dev/null +++ b/asn1c_defs/all-defs/FreqBandNrItem.c @@ -0,0 +1,177 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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_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 */ + { 0, &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, + { 0, &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, + { 0, &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_8231P148, + 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/asn1c_defs/all-defs/FreqBandNrItem.h b/asn1c_defs/all-defs/FreqBandNrItem.h new file mode 100644 index 0000000..79f09f6 --- /dev/null +++ b/asn1c_defs/all-defs/FreqBandNrItem.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _FreqBandNrItem_H_ +#define _FreqBandNrItem_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/GBR-QosInformation.c b/asn1c_defs/all-defs/GBR-QosInformation.c new file mode 100644 index 0000000..dc05ed1 --- /dev/null +++ b/asn1c_defs/all-defs/GBR-QosInformation.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P149, + 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/asn1c_defs/all-defs/GBR-QosInformation.h b/asn1c_defs/all-defs/GBR-QosInformation.h new file mode 100644 index 0000000..7ef109c --- /dev/null +++ b/asn1c_defs/all-defs/GBR-QosInformation.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _GBR_QosInformation_H_ +#define _GBR_QosInformation_H_ + + +#include + +/* Including external dependencies */ +#include "BitRate.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/GNB-ID.c b/asn1c_defs/all-defs/GNB-ID.c new file mode 100644 index 0000000..033ed7b --- /dev/null +++ b/asn1c_defs/all-defs/GNB-ID.c @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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 */ +}; +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, + { 0, &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) */ + { 0, &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/asn1c_defs/all-defs/GNB-ID.h b/asn1c_defs/all-defs/GNB-ID.h new file mode 100644 index 0000000..dcd184d --- /dev/null +++ b/asn1c_defs/all-defs/GNB-ID.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _GNB_ID_H_ +#define _GNB_ID_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/GNBOverloadInformation.c b/asn1c_defs/all-defs/GNBOverloadInformation.c new file mode 100644 index 0000000..cb70c27 --- /dev/null +++ b/asn1c_defs/all-defs/GNBOverloadInformation.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "GNBOverloadInformation.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_GNBOverloadInformation_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_GNBOverloadInformation_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/GNBOverloadInformation.h b/asn1c_defs/all-defs/GNBOverloadInformation.h new file mode 100644 index 0000000..e93bf35 --- /dev/null +++ b/asn1c_defs/all-defs/GNBOverloadInformation.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _GNBOverloadInformation_H_ +#define _GNBOverloadInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/GNBStatusIndication.c b/asn1c_defs/all-defs/GNBStatusIndication.c new file mode 100644 index 0000000..20ae771 --- /dev/null +++ b/asn1c_defs/all-defs/GNBStatusIndication.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P119, + 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/asn1c_defs/all-defs/GNBStatusIndication.h b/asn1c_defs/all-defs/GNBStatusIndication.h new file mode 100644 index 0000000..a925cdb --- /dev/null +++ b/asn1c_defs/all-defs/GNBStatusIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _GNBStatusIndication_H_ +#define _GNBStatusIndication_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* GNBStatusIndication */ +typedef struct GNBStatusIndication { + ProtocolIE_Container_8180P119_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 diff --git a/asn1c_defs/all-defs/GTP-TEI.c b/asn1c_defs/all-defs/GTP-TEI.c new file mode 100644 index 0000000..f130651 --- /dev/null +++ b/asn1c_defs/all-defs/GTP-TEI.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_GTP_TEI_constr_1, GTP_TEI_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/GTP-TEI.h b/asn1c_defs/all-defs/GTP-TEI.h new file mode 100644 index 0000000..0802581 --- /dev/null +++ b/asn1c_defs/all-defs/GTP-TEI.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _GTP_TEI_H_ +#define _GTP_TEI_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/GTPtunnelEndpoint.c b/asn1c_defs/all-defs/GTPtunnelEndpoint.c new file mode 100644 index 0000000..fb0a63a --- /dev/null +++ b/asn1c_defs/all-defs/GTPtunnelEndpoint.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P152, + 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/asn1c_defs/all-defs/GTPtunnelEndpoint.h b/asn1c_defs/all-defs/GTPtunnelEndpoint.h new file mode 100644 index 0000000..be53228 --- /dev/null +++ b/asn1c_defs/all-defs/GTPtunnelEndpoint.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _GTPtunnelEndpoint_H_ +#define _GTPtunnelEndpoint_H_ + + +#include + +/* Including external dependencies */ +#include "TransportLayerAddress.h" +#include "GTP-TEI.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/GU-Group-ID.c b/asn1c_defs/all-defs/GU-Group-ID.c new file mode 100644 index 0000000..3541d6a --- /dev/null +++ b/asn1c_defs/all-defs/GU-Group-ID.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P153, + 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/asn1c_defs/all-defs/GU-Group-ID.h b/asn1c_defs/all-defs/GU-Group-ID.h new file mode 100644 index 0000000..544b32e --- /dev/null +++ b/asn1c_defs/all-defs/GU-Group-ID.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _GU_Group_ID_H_ +#define _GU_Group_ID_H_ + + +#include + +/* Including external dependencies */ +#include "PLMN-Identity.h" +#include "MME-Group-ID.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/GUGroupIDList.c b/asn1c_defs/all-defs/GUGroupIDList.c new file mode 100644 index 0000000..5210410 --- /dev/null +++ b/asn1c_defs/all-defs/GUGroupIDList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "GUGroupIDList.h" + +#include "GU-Group-ID.h" +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 */ + { 0, &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/asn1c_defs/all-defs/GUGroupIDList.h b/asn1c_defs/all-defs/GUGroupIDList.h new file mode 100644 index 0000000..3f16db4 --- /dev/null +++ b/asn1c_defs/all-defs/GUGroupIDList.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _GUGroupIDList_H_ +#define _GUGroupIDList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/GUMMEI.c b/asn1c_defs/all-defs/GUMMEI.c new file mode 100644 index 0000000..2173d6d --- /dev/null +++ b/asn1c_defs/all-defs/GUMMEI.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P154, + 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/asn1c_defs/all-defs/GUMMEI.h b/asn1c_defs/all-defs/GUMMEI.h new file mode 100644 index 0000000..893975e --- /dev/null +++ b/asn1c_defs/all-defs/GUMMEI.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _GUMMEI_H_ +#define _GUMMEI_H_ + + +#include + +/* Including external dependencies */ +#include "GU-Group-ID.h" +#include "MME-Code.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/GlobalENB-ID.c b/asn1c_defs/all-defs/GlobalENB-ID.c new file mode 100644 index 0000000..ffa2a58 --- /dev/null +++ b/asn1c_defs/all-defs/GlobalENB-ID.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P150, + 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/asn1c_defs/all-defs/GlobalENB-ID.h b/asn1c_defs/all-defs/GlobalENB-ID.h new file mode 100644 index 0000000..893d6de --- /dev/null +++ b/asn1c_defs/all-defs/GlobalENB-ID.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _GlobalENB_ID_H_ +#define _GlobalENB_ID_H_ + + +#include + +/* Including external dependencies */ +#include "PLMN-Identity.h" +#include "ENB-ID.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/GlobalGNB-ID.c b/asn1c_defs/all-defs/GlobalGNB-ID.c new file mode 100644 index 0000000..f31ead5 --- /dev/null +++ b/asn1c_defs/all-defs/GlobalGNB-ID.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P151, + 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/asn1c_defs/all-defs/GlobalGNB-ID.h b/asn1c_defs/all-defs/GlobalGNB-ID.h new file mode 100644 index 0000000..6d95b8f --- /dev/null +++ b/asn1c_defs/all-defs/GlobalGNB-ID.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _GlobalGNB_ID_H_ +#define _GlobalGNB_ID_H_ + + +#include + +/* Including external dependencies */ +#include "PLMN-Identity.h" +#include "GNB-ID.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/HFN.c b/asn1c_defs/all-defs/HFN.c new file mode 100644 index 0000000..e50f366 --- /dev/null +++ b/asn1c_defs/all-defs/HFN.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_HFN_constr_1, HFN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/HFN.h b/asn1c_defs/all-defs/HFN.h new file mode 100644 index 0000000..9494aa4 --- /dev/null +++ b/asn1c_defs/all-defs/HFN.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _HFN_H_ +#define _HFN_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/HFNModified.c b/asn1c_defs/all-defs/HFNModified.c new file mode 100644 index 0000000..e47fa62 --- /dev/null +++ b/asn1c_defs/all-defs/HFNModified.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_HFNModified_constr_1, HFNModified_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/HFNModified.h b/asn1c_defs/all-defs/HFNModified.h new file mode 100644 index 0000000..87374d5 --- /dev/null +++ b/asn1c_defs/all-defs/HFNModified.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _HFNModified_H_ +#define _HFNModified_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/HFNforPDCP-SNlength18.c b/asn1c_defs/all-defs/HFNforPDCP-SNlength18.c new file mode 100644 index 0000000..7d7fee4 --- /dev/null +++ b/asn1c_defs/all-defs/HFNforPDCP-SNlength18.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_HFNforPDCP_SNlength18_constr_1, HFNforPDCP_SNlength18_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/HFNforPDCP-SNlength18.h b/asn1c_defs/all-defs/HFNforPDCP-SNlength18.h new file mode 100644 index 0000000..4161f77 --- /dev/null +++ b/asn1c_defs/all-defs/HFNforPDCP-SNlength18.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _HFNforPDCP_SNlength18_H_ +#define _HFNforPDCP_SNlength18_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/HWLoadIndicator.c b/asn1c_defs/all-defs/HWLoadIndicator.c new file mode 100644 index 0000000..ca642bf --- /dev/null +++ b/asn1c_defs/all-defs/HWLoadIndicator.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P156, + 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/asn1c_defs/all-defs/HWLoadIndicator.h b/asn1c_defs/all-defs/HWLoadIndicator.h new file mode 100644 index 0000000..6e63f6a --- /dev/null +++ b/asn1c_defs/all-defs/HWLoadIndicator.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _HWLoadIndicator_H_ +#define _HWLoadIndicator_H_ + + +#include + +/* Including external dependencies */ +#include "LoadIndicator.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/HandoverCancel.c b/asn1c_defs/all-defs/HandoverCancel.c new file mode 100644 index 0000000..5831e64 --- /dev/null +++ b/asn1c_defs/all-defs/HandoverCancel.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P20, + 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/asn1c_defs/all-defs/HandoverCancel.h b/asn1c_defs/all-defs/HandoverCancel.h new file mode 100644 index 0000000..95713ca --- /dev/null +++ b/asn1c_defs/all-defs/HandoverCancel.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _HandoverCancel_H_ +#define _HandoverCancel_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* HandoverCancel */ +typedef struct HandoverCancel { + ProtocolIE_Container_8180P20_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 diff --git a/asn1c_defs/all-defs/HandoverPreparationFailure.c b/asn1c_defs/all-defs/HandoverPreparationFailure.c new file mode 100644 index 0000000..9f41f80 --- /dev/null +++ b/asn1c_defs/all-defs/HandoverPreparationFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P16, + 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/asn1c_defs/all-defs/HandoverPreparationFailure.h b/asn1c_defs/all-defs/HandoverPreparationFailure.h new file mode 100644 index 0000000..c496ff5 --- /dev/null +++ b/asn1c_defs/all-defs/HandoverPreparationFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _HandoverPreparationFailure_H_ +#define _HandoverPreparationFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* HandoverPreparationFailure */ +typedef struct HandoverPreparationFailure { + ProtocolIE_Container_8180P16_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 diff --git a/asn1c_defs/all-defs/HandoverReport.c b/asn1c_defs/all-defs/HandoverReport.c new file mode 100644 index 0000000..1cd7fc7 --- /dev/null +++ b/asn1c_defs/all-defs/HandoverReport.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P17, + 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/asn1c_defs/all-defs/HandoverReport.h b/asn1c_defs/all-defs/HandoverReport.h new file mode 100644 index 0000000..422764d --- /dev/null +++ b/asn1c_defs/all-defs/HandoverReport.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _HandoverReport_H_ +#define _HandoverReport_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* HandoverReport */ +typedef struct HandoverReport { + ProtocolIE_Container_8180P17_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 diff --git a/asn1c_defs/all-defs/HandoverReportType.c b/asn1c_defs/all-defs/HandoverReportType.c new file mode 100644 index 0000000..477c0f7 --- /dev/null +++ b/asn1c_defs/all-defs/HandoverReportType.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "HandoverReportType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_HandoverReportType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_HandoverReportType_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/HandoverReportType.h b/asn1c_defs/all-defs/HandoverReportType.h new file mode 100644 index 0000000..5e076aa --- /dev/null +++ b/asn1c_defs/all-defs/HandoverReportType.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _HandoverReportType_H_ +#define _HandoverReportType_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/HandoverRequest.c b/asn1c_defs/all-defs/HandoverRequest.c new file mode 100644 index 0000000..df18e72 --- /dev/null +++ b/asn1c_defs/all-defs/HandoverRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P14, + 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/asn1c_defs/all-defs/HandoverRequest.h b/asn1c_defs/all-defs/HandoverRequest.h new file mode 100644 index 0000000..896b843 --- /dev/null +++ b/asn1c_defs/all-defs/HandoverRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _HandoverRequest_H_ +#define _HandoverRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* HandoverRequest */ +typedef struct HandoverRequest { + ProtocolIE_Container_8180P14_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 diff --git a/asn1c_defs/all-defs/HandoverRequestAcknowledge.c b/asn1c_defs/all-defs/HandoverRequestAcknowledge.c new file mode 100644 index 0000000..fd22e7b --- /dev/null +++ b/asn1c_defs/all-defs/HandoverRequestAcknowledge.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P15, + 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/asn1c_defs/all-defs/HandoverRequestAcknowledge.h b/asn1c_defs/all-defs/HandoverRequestAcknowledge.h new file mode 100644 index 0000000..effa136 --- /dev/null +++ b/asn1c_defs/all-defs/HandoverRequestAcknowledge.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _HandoverRequestAcknowledge_H_ +#define _HandoverRequestAcknowledge_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* HandoverRequestAcknowledge */ +typedef struct HandoverRequestAcknowledge { + ProtocolIE_Container_8180P15_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 diff --git a/asn1c_defs/all-defs/HandoverRestrictionList.c b/asn1c_defs/all-defs/HandoverRestrictionList.c new file mode 100644 index 0000000..5a47961 --- /dev/null +++ b/asn1c_defs/all-defs/HandoverRestrictionList.c @@ -0,0 +1,106 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P155, + 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/asn1c_defs/all-defs/HandoverRestrictionList.h b/asn1c_defs/all-defs/HandoverRestrictionList.h new file mode 100644 index 0000000..ad23cae --- /dev/null +++ b/asn1c_defs/all-defs/HandoverRestrictionList.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _HandoverRestrictionList_H_ +#define _HandoverRestrictionList_H_ + + +#include + +/* Including external dependencies */ +#include "PLMN-Identity.h" +#include "ForbiddenInterRATs.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/INTEGER.c b/asn1c_defs/all-defs/INTEGER.c new file mode 100644 index 0000000..2a2f4d7 --- /dev/null +++ b/asn1c_defs/all-defs/INTEGER.c @@ -0,0 +1,1735 @@ +/*- + * Copyright (c) 2003-2014 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include /* Encoder and decoder of a primitive type */ +#include + +/* + * 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("", 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/asn1c_defs/all-defs/INTEGER.h b/asn1c_defs/all-defs/INTEGER.h new file mode 100644 index 0000000..f776c07 --- /dev/null +++ b/asn1c_defs/all-defs/INTEGER.h @@ -0,0 +1,108 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _INTEGER_H_ +#define _INTEGER_H_ + +#include +#include + +#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 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/asn1c_defs/all-defs/InitiatingMessage.c b/asn1c_defs/all-defs/InitiatingMessage.c new file mode 100644 index 0000000..5e05551 --- /dev/null +++ b/asn1c_defs/all-defs/InitiatingMessage.c @@ -0,0 +1,508 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Descriptions" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "InitiatingMessage.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_x2Setup = 6; +static const long asn_VAL_5_reject = 0; +static const long asn_VAL_6_id_endcX2Setup = 36; +static const long asn_VAL_6_reject = 0; +static const long asn_VAL_7_id_resourceStatusReportingInitiation = 9; +static const long asn_VAL_7_reject = 0; +static const long asn_VAL_8_id_eNBConfigurationUpdate = 8; +static const long asn_VAL_8_reject = 0; +static const long asn_VAL_9_id_endcConfigurationUpdate = 37; +static const long asn_VAL_9_reject = 0; +static const long asn_VAL_10_id_reset = 7; +static const long asn_VAL_10_reject = 0; +static const long asn_VAL_11_id_ricIndication = 205; +static const long asn_VAL_11_ignore = 1; +static const long asn_VAL_12_id_ricServiceQuery = 206; +static const long asn_VAL_12_ignore = 1; +static const long asn_VAL_13_id_loadIndication = 2; +static const long asn_VAL_13_ignore = 1; +static const long asn_VAL_14_id_gNBStatusIndication = 45; +static const long asn_VAL_14_ignore = 1; +static const long asn_VAL_15_id_resourceStatusReporting = 10; +static const long asn_VAL_15_ignore = 1; +static const long asn_VAL_16_id_errorIndication = 3; +static const long asn_VAL_16_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_X2SetupRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_X2SetupResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_X2SetupFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_x2Setup }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_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_6_id_endcX2Setup }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_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_7_id_resourceStatusReportingInitiation }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_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_8_id_eNBConfigurationUpdate }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_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_9_id_endcConfigurationUpdate }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_10_id_reset }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICindication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_ricIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_12_id_ricServiceQuery }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_LoadInformation }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_13_id_loadIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_GNBStatusIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_14_id_gNBStatusIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ResourceStatusUpdate }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_15_id_resourceStatusReporting }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_15_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_16_id_errorIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_16_ignore } +}; +static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { + { 16, 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_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_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 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_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 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_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_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_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.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 InitiatingMessage__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 InitiatingMessage__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 InitiatingMessage__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 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.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.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.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.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.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 InitiatingMessage__value, choice.RICserviceQuery), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICserviceQuery, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICserviceQuery" + }, + { 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.GNBStatusIndication), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_GNBStatusIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GNBStatusIndication" + }, + { 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.ErrorIndication), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ErrorIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ErrorIndication" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 15 }, /* RICsubscriptionRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 14 }, /* RICsubscriptionDeleteRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 13 }, /* RICserviceUpdate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 12 }, /* RICcontrolRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 11 }, /* X2SetupRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 10 }, /* ENDCX2SetupRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 9 }, /* ResourceStatusRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -7, 8 }, /* ENBConfigurationUpdate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -8, 7 }, /* ENDCConfigurationUpdate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -9, 6 }, /* ResetRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 10, -10, 5 }, /* RICindication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 11, -11, 4 }, /* RICserviceQuery */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 12, -12, 3 }, /* LoadInformation */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 13, -13, 2 }, /* GNBStatusIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 14, -14, 1 }, /* ResourceStatusUpdate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 15, -15, 0 } /* ErrorIndication */ +}; +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, + 16, /* 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, + 16, /* 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, + { 0, &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, + { 0, &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, + { 0, &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/asn1c_defs/all-defs/InitiatingMessage.h b/asn1c_defs/all-defs/InitiatingMessage.h new file mode 100644 index 0000000..e2e2d7c --- /dev/null +++ b/asn1c_defs/all-defs/InitiatingMessage.h @@ -0,0 +1,126 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Descriptions" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _InitiatingMessage_H_ +#define _InitiatingMessage_H_ + + +#include + +/* Including external dependencies */ +#include "ProcedureCode.h" +#include "Criticality.h" +#include +#include +#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 "X2SetupRequest.h" +#include "X2SetupResponse.h" +#include "X2SetupFailure.h" +#include "ENDCX2SetupRequest.h" +#include "ENDCX2SetupResponse.h" +#include "ENDCX2SetupFailure.h" +#include "ResourceStatusRequest.h" +#include "ResourceStatusResponse.h" +#include "ResourceStatusFailure.h" +#include "ENBConfigurationUpdate.h" +#include "ENBConfigurationUpdateAcknowledge.h" +#include "ENBConfigurationUpdateFailure.h" +#include "ENDCConfigurationUpdate.h" +#include "ENDCConfigurationUpdateAcknowledge.h" +#include "ENDCConfigurationUpdateFailure.h" +#include "ResetRequest.h" +#include "ResetResponse.h" +#include "RICindication.h" +#include "RICserviceQuery.h" +#include "LoadInformation.h" +#include "GNBStatusIndication.h" +#include "ResourceStatusUpdate.h" +#include "ErrorIndication.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum InitiatingMessage__value_PR { + InitiatingMessage__value_PR_NOTHING, /* No components present */ + InitiatingMessage__value_PR_RICsubscriptionRequest, + InitiatingMessage__value_PR_RICsubscriptionDeleteRequest, + InitiatingMessage__value_PR_RICserviceUpdate, + InitiatingMessage__value_PR_RICcontrolRequest, + InitiatingMessage__value_PR_X2SetupRequest, + InitiatingMessage__value_PR_ENDCX2SetupRequest, + InitiatingMessage__value_PR_ResourceStatusRequest, + InitiatingMessage__value_PR_ENBConfigurationUpdate, + InitiatingMessage__value_PR_ENDCConfigurationUpdate, + InitiatingMessage__value_PR_ResetRequest, + InitiatingMessage__value_PR_RICindication, + InitiatingMessage__value_PR_RICserviceQuery, + InitiatingMessage__value_PR_LoadInformation, + InitiatingMessage__value_PR_GNBStatusIndication, + InitiatingMessage__value_PR_ResourceStatusUpdate, + InitiatingMessage__value_PR_ErrorIndication +} InitiatingMessage__value_PR; + +/* InitiatingMessage */ +typedef struct InitiatingMessage { + ProcedureCode_t procedureCode; + Criticality_t criticality; + struct InitiatingMessage__value { + InitiatingMessage__value_PR present; + union InitiatingMessage__value_u { + RICsubscriptionRequest_t RICsubscriptionRequest; + RICsubscriptionDeleteRequest_t RICsubscriptionDeleteRequest; + RICserviceUpdate_t RICserviceUpdate; + RICcontrolRequest_t RICcontrolRequest; + X2SetupRequest_t X2SetupRequest; + ENDCX2SetupRequest_t ENDCX2SetupRequest; + ResourceStatusRequest_t ResourceStatusRequest; + ENBConfigurationUpdate_t ENBConfigurationUpdate; + ENDCConfigurationUpdate_t ENDCConfigurationUpdate; + ResetRequest_t ResetRequest; + RICindication_t RICindication; + RICserviceQuery_t RICserviceQuery; + LoadInformation_t LoadInformation; + GNBStatusIndication_t GNBStatusIndication; + ResourceStatusUpdate_t ResourceStatusUpdate; + ErrorIndication_t ErrorIndication; + } 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 diff --git a/asn1c_defs/all-defs/InitiatingNodeType-EndcConfigUpdate.c b/asn1c_defs/all-defs/InitiatingNodeType-EndcConfigUpdate.c new file mode 100644 index 0000000..4142082 --- /dev/null +++ b/asn1c_defs/all-defs/InitiatingNodeType-EndcConfigUpdate.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "InitiatingNodeType-EndcConfigUpdate.h" + +#include "ProtocolIE-Container.h" +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_8180P92, + 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_8180P93, + 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) */ + { 0, &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/asn1c_defs/all-defs/InitiatingNodeType-EndcConfigUpdate.h b/asn1c_defs/all-defs/InitiatingNodeType-EndcConfigUpdate.h new file mode 100644 index 0000000..bf75bc2 --- /dev/null +++ b/asn1c_defs/all-defs/InitiatingNodeType-EndcConfigUpdate.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _InitiatingNodeType_EndcConfigUpdate_H_ +#define _InitiatingNodeType_EndcConfigUpdate_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/InitiatingNodeType-EndcX2Removal.c b/asn1c_defs/all-defs/InitiatingNodeType-EndcX2Removal.c new file mode 100644 index 0000000..0b7ba88 --- /dev/null +++ b/asn1c_defs/all-defs/InitiatingNodeType-EndcX2Removal.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "InitiatingNodeType-EndcX2Removal.h" + +#include "ProtocolIE-Container.h" +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_8180P112, + 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_8180P113, + 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) */ + { 0, &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/asn1c_defs/all-defs/InitiatingNodeType-EndcX2Removal.h b/asn1c_defs/all-defs/InitiatingNodeType-EndcX2Removal.h new file mode 100644 index 0000000..615bb68 --- /dev/null +++ b/asn1c_defs/all-defs/InitiatingNodeType-EndcX2Removal.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _InitiatingNodeType_EndcX2Removal_H_ +#define _InitiatingNodeType_EndcX2Removal_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/InitiatingNodeType-EndcX2Setup.c b/asn1c_defs/all-defs/InitiatingNodeType-EndcX2Setup.c new file mode 100644 index 0000000..1277156 --- /dev/null +++ b/asn1c_defs/all-defs/InitiatingNodeType-EndcX2Setup.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "InitiatingNodeType-EndcX2Setup.h" + +#include "ProtocolIE-Container.h" +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_8180P85, + 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_8180P86, + 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) */ + { 0, &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/asn1c_defs/all-defs/InitiatingNodeType-EndcX2Setup.h b/asn1c_defs/all-defs/InitiatingNodeType-EndcX2Setup.h new file mode 100644 index 0000000..36c2162 --- /dev/null +++ b/asn1c_defs/all-defs/InitiatingNodeType-EndcX2Setup.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _InitiatingNodeType_EndcX2Setup_H_ +#define _InitiatingNodeType_EndcX2Setup_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/InitiatingNodeType-EutranrCellResourceCoordination.c b/asn1c_defs/all-defs/InitiatingNodeType-EutranrCellResourceCoordination.c new file mode 100644 index 0000000..c2e1ae6 --- /dev/null +++ b/asn1c_defs/all-defs/InitiatingNodeType-EutranrCellResourceCoordination.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "InitiatingNodeType-EutranrCellResourceCoordination.h" + +#include "ProtocolIE-Container.h" +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_8180P106, + 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_8180P107, + 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) */ + { 0, &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/asn1c_defs/all-defs/InitiatingNodeType-EutranrCellResourceCoordination.h b/asn1c_defs/all-defs/InitiatingNodeType-EutranrCellResourceCoordination.h new file mode 100644 index 0000000..63316dc --- /dev/null +++ b/asn1c_defs/all-defs/InitiatingNodeType-EutranrCellResourceCoordination.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _InitiatingNodeType_EutranrCellResourceCoordination_H_ +#define _InitiatingNodeType_EutranrCellResourceCoordination_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/IntegrityProtectionAlgorithms.c b/asn1c_defs/all-defs/IntegrityProtectionAlgorithms.c new file mode 100644 index 0000000..54b8a47 --- /dev/null +++ b/asn1c_defs/all-defs/IntegrityProtectionAlgorithms.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_IntegrityProtectionAlgorithms_constr_1, IntegrityProtectionAlgorithms_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/IntegrityProtectionAlgorithms.h b/asn1c_defs/all-defs/IntegrityProtectionAlgorithms.h new file mode 100644 index 0000000..a5c9c60 --- /dev/null +++ b/asn1c_defs/all-defs/IntegrityProtectionAlgorithms.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _IntegrityProtectionAlgorithms_H_ +#define _IntegrityProtectionAlgorithms_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/Interface-ID.c b/asn1c_defs/all-defs/Interface-ID.c new file mode 100644 index 0000000..917cc26 --- /dev/null +++ b/asn1c_defs/all-defs/Interface-ID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "Interface-ID.h" + +#include "GlobalENB-ID.h" +#include "GlobalGNB-ID.h" +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) */ + { 0, &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/asn1c_defs/all-defs/Interface-ID.h b/asn1c_defs/all-defs/Interface-ID.h new file mode 100644 index 0000000..98eaa0e --- /dev/null +++ b/asn1c_defs/all-defs/Interface-ID.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _Interface_ID_H_ +#define _Interface_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/InterfaceDirection.c b/asn1c_defs/all-defs/InterfaceDirection.c new file mode 100644 index 0000000..74c0570 --- /dev/null +++ b/asn1c_defs/all-defs/InterfaceDirection.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "InterfaceDirection.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_InterfaceDirection_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_InterfaceDirection_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/InterfaceDirection.h b/asn1c_defs/all-defs/InterfaceDirection.h new file mode 100644 index 0000000..9e901bd --- /dev/null +++ b/asn1c_defs/all-defs/InterfaceDirection.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _InterfaceDirection_H_ +#define _InterfaceDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/InterfaceMessage.c b/asn1c_defs/all-defs/InterfaceMessage.c new file mode 100644 index 0000000..77b2d71 --- /dev/null +++ b/asn1c_defs/all-defs/InterfaceMessage.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/InterfaceMessage.h b/asn1c_defs/all-defs/InterfaceMessage.h new file mode 100644 index 0000000..6b203df --- /dev/null +++ b/asn1c_defs/all-defs/InterfaceMessage.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _InterfaceMessage_H_ +#define _InterfaceMessage_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/InterfaceMessageType.c b/asn1c_defs/all-defs/InterfaceMessageType.c new file mode 100644 index 0000000..916fa3d --- /dev/null +++ b/asn1c_defs/all-defs/InterfaceMessageType.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/InterfaceMessageType.h b/asn1c_defs/all-defs/InterfaceMessageType.h new file mode 100644 index 0000000..0cd06d0 --- /dev/null +++ b/asn1c_defs/all-defs/InterfaceMessageType.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _InterfaceMessageType_H_ +#define _InterfaceMessageType_H_ + + +#include + +/* Including external dependencies */ +#include "ProcedureCode.h" +#include "TypeOfMessage.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/InterfaceProtocolIE-ID.c b/asn1c_defs/all-defs/InterfaceProtocolIE-ID.c new file mode 100644 index 0000000..cb0ca0a --- /dev/null +++ b/asn1c_defs/all-defs/InterfaceProtocolIE-ID.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_InterfaceProtocolIE_ID_constr_1, InterfaceProtocolIE_ID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/InterfaceProtocolIE-ID.h b/asn1c_defs/all-defs/InterfaceProtocolIE-ID.h new file mode 100644 index 0000000..59bc46b --- /dev/null +++ b/asn1c_defs/all-defs/InterfaceProtocolIE-ID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _InterfaceProtocolIE_ID_H_ +#define _InterfaceProtocolIE_ID_H_ + + +#include + +/* 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; +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 diff --git a/asn1c_defs/all-defs/InterfaceProtocolIE-Item.c b/asn1c_defs/all-defs/InterfaceProtocolIE-Item.c new file mode 100644 index 0000000..6e8fc53 --- /dev/null +++ b/asn1c_defs/all-defs/InterfaceProtocolIE-Item.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/InterfaceProtocolIE-Item.h b/asn1c_defs/all-defs/InterfaceProtocolIE-Item.h new file mode 100644 index 0000000..25ae5a7 --- /dev/null +++ b/asn1c_defs/all-defs/InterfaceProtocolIE-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _InterfaceProtocolIE_Item_H_ +#define _InterfaceProtocolIE_Item_H_ + + +#include + +/* Including external dependencies */ +#include "InterfaceProtocolIE-ID.h" +#include "InterfaceProtocolIE-Test.h" +#include "InterfaceProtocolIE-Value.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/InterfaceProtocolIE-Test.c b/asn1c_defs/all-defs/InterfaceProtocolIE-Test.c new file mode 100644 index 0000000..2d379a5 --- /dev/null +++ b/asn1c_defs/all-defs/InterfaceProtocolIE-Test.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "InterfaceProtocolIE-Test.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_InterfaceProtocolIE_Test_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_InterfaceProtocolIE_Test_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/InterfaceProtocolIE-Test.h b/asn1c_defs/all-defs/InterfaceProtocolIE-Test.h new file mode 100644 index 0000000..49ebdc5 --- /dev/null +++ b/asn1c_defs/all-defs/InterfaceProtocolIE-Test.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _InterfaceProtocolIE_Test_H_ +#define _InterfaceProtocolIE_Test_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/InterfaceProtocolIE-Value.c b/asn1c_defs/all-defs/InterfaceProtocolIE-Value.c new file mode 100644 index 0000000..cb64eb0 --- /dev/null +++ b/asn1c_defs/all-defs/InterfaceProtocolIE-Value.c @@ -0,0 +1,92 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "InterfaceProtocolIE-Value.h" + +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) */ + { 0, &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/asn1c_defs/all-defs/InterfaceProtocolIE-Value.h b/asn1c_defs/all-defs/InterfaceProtocolIE-Value.h new file mode 100644 index 0000000..55799fb --- /dev/null +++ b/asn1c_defs/all-defs/InterfaceProtocolIE-Value.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _InterfaceProtocolIE_Value_H_ +#define _InterfaceProtocolIE_Value_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/InterfacesToTrace.c b/asn1c_defs/all-defs/InterfacesToTrace.c new file mode 100644 index 0000000..c02766c --- /dev/null +++ b/asn1c_defs/all-defs/InterfacesToTrace.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_InterfacesToTrace_constr_1, InterfacesToTrace_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/InterfacesToTrace.h b/asn1c_defs/all-defs/InterfacesToTrace.h new file mode 100644 index 0000000..0fb14f7 --- /dev/null +++ b/asn1c_defs/all-defs/InterfacesToTrace.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _InterfacesToTrace_H_ +#define _InterfacesToTrace_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/InvokeIndication.c b/asn1c_defs/all-defs/InvokeIndication.c new file mode 100644 index 0000000..9adb169 --- /dev/null +++ b/asn1c_defs/all-defs/InvokeIndication.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "InvokeIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_InvokeIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_InvokeIndication_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/InvokeIndication.h b/asn1c_defs/all-defs/InvokeIndication.h new file mode 100644 index 0000000..2d47482 --- /dev/null +++ b/asn1c_defs/all-defs/InvokeIndication.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _InvokeIndication_H_ +#define _InvokeIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/Key-eNodeB-Star.c b/asn1c_defs/all-defs/Key-eNodeB-Star.c new file mode 100644 index 0000000..9f8eaa9 --- /dev/null +++ b/asn1c_defs/all-defs/Key-eNodeB-Star.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &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/asn1c_defs/all-defs/Key-eNodeB-Star.h b/asn1c_defs/all-defs/Key-eNodeB-Star.h new file mode 100644 index 0000000..0a59430 --- /dev/null +++ b/asn1c_defs/all-defs/Key-eNodeB-Star.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _Key_eNodeB_Star_H_ +#define _Key_eNodeB_Star_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/LAC.c b/asn1c_defs/all-defs/LAC.c new file mode 100644 index 0000000..ad7c30c --- /dev/null +++ b/asn1c_defs/all-defs/LAC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_LAC_constr_1, LAC_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/LAC.h b/asn1c_defs/all-defs/LAC.h new file mode 100644 index 0000000..473d460 --- /dev/null +++ b/asn1c_defs/all-defs/LAC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _LAC_H_ +#define _LAC_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/LCID.c b/asn1c_defs/all-defs/LCID.c new file mode 100644 index 0000000..a634a3d --- /dev/null +++ b/asn1c_defs/all-defs/LCID.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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 */ + { 0, &asn_PER_type_LCID_constr_1, LCID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/LCID.h b/asn1c_defs/all-defs/LCID.h new file mode 100644 index 0000000..0c8b49e --- /dev/null +++ b/asn1c_defs/all-defs/LCID.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _LCID_H_ +#define _LCID_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/LHN-ID.c b/asn1c_defs/all-defs/LHN-ID.c new file mode 100644 index 0000000..20c763e --- /dev/null +++ b/asn1c_defs/all-defs/LHN-ID.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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 */ + { 0, &asn_PER_type_LHN_ID_constr_1, LHN_ID_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/LHN-ID.h b/asn1c_defs/all-defs/LHN-ID.h new file mode 100644 index 0000000..94d0e0e --- /dev/null +++ b/asn1c_defs/all-defs/LHN-ID.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _LHN_ID_H_ +#define _LHN_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/LastVisitedCell-Item.c b/asn1c_defs/all-defs/LastVisitedCell-Item.c new file mode 100644 index 0000000..e099e21 --- /dev/null +++ b/asn1c_defs/all-defs/LastVisitedCell-Item.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "LastVisitedCell-Item.h" + +#include "LastVisitedEUTRANCellInformation.h" +#include "LastVisitedGERANCellInformation.h" +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) */ + { 0, &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/asn1c_defs/all-defs/LastVisitedCell-Item.h b/asn1c_defs/all-defs/LastVisitedCell-Item.h new file mode 100644 index 0000000..151787f --- /dev/null +++ b/asn1c_defs/all-defs/LastVisitedCell-Item.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _LastVisitedCell_Item_H_ +#define _LastVisitedCell_Item_H_ + + +#include + +/* Including external dependencies */ +#include "LastVisitedUTRANCellInformation.h" +#include "LastVisitedNGRANCellInformation.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/LastVisitedEUTRANCellInformation.c b/asn1c_defs/all-defs/LastVisitedEUTRANCellInformation.c new file mode 100644 index 0000000..80520f4 --- /dev/null +++ b/asn1c_defs/all-defs/LastVisitedEUTRANCellInformation.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P157, + 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/asn1c_defs/all-defs/LastVisitedEUTRANCellInformation.h b/asn1c_defs/all-defs/LastVisitedEUTRANCellInformation.h new file mode 100644 index 0000000..b2a7467 --- /dev/null +++ b/asn1c_defs/all-defs/LastVisitedEUTRANCellInformation.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _LastVisitedEUTRANCellInformation_H_ +#define _LastVisitedEUTRANCellInformation_H_ + + +#include + +/* Including external dependencies */ +#include "ECGI.h" +#include "CellType.h" +#include "Time-UE-StayedInCell.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/LastVisitedGERANCellInformation.c b/asn1c_defs/all-defs/LastVisitedGERANCellInformation.c new file mode 100644 index 0000000..218bd8c --- /dev/null +++ b/asn1c_defs/all-defs/LastVisitedGERANCellInformation.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "LastVisitedGERANCellInformation.h" + +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) */ + { 0, &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/asn1c_defs/all-defs/LastVisitedGERANCellInformation.h b/asn1c_defs/all-defs/LastVisitedGERANCellInformation.h new file mode 100644 index 0000000..fbfb78a --- /dev/null +++ b/asn1c_defs/all-defs/LastVisitedGERANCellInformation.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _LastVisitedGERANCellInformation_H_ +#define _LastVisitedGERANCellInformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/LastVisitedNGRANCellInformation.c b/asn1c_defs/all-defs/LastVisitedNGRANCellInformation.c new file mode 100644 index 0000000..8bbff9b --- /dev/null +++ b/asn1c_defs/all-defs/LastVisitedNGRANCellInformation.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/LastVisitedNGRANCellInformation.h b/asn1c_defs/all-defs/LastVisitedNGRANCellInformation.h new file mode 100644 index 0000000..9960657 --- /dev/null +++ b/asn1c_defs/all-defs/LastVisitedNGRANCellInformation.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _LastVisitedNGRANCellInformation_H_ +#define _LastVisitedNGRANCellInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/LastVisitedUTRANCellInformation.c b/asn1c_defs/all-defs/LastVisitedUTRANCellInformation.c new file mode 100644 index 0000000..5f311cd --- /dev/null +++ b/asn1c_defs/all-defs/LastVisitedUTRANCellInformation.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/LastVisitedUTRANCellInformation.h b/asn1c_defs/all-defs/LastVisitedUTRANCellInformation.h new file mode 100644 index 0000000..a46c443 --- /dev/null +++ b/asn1c_defs/all-defs/LastVisitedUTRANCellInformation.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _LastVisitedUTRANCellInformation_H_ +#define _LastVisitedUTRANCellInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/Limited-list.c b/asn1c_defs/all-defs/Limited-list.c new file mode 100644 index 0000000..703c2f4 --- /dev/null +++ b/asn1c_defs/all-defs/Limited-list.c @@ -0,0 +1,104 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "Limited-list.h" + +#include "ProtocolExtensionContainer.h" +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_8231P98, + 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 */ + { 0, &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/asn1c_defs/all-defs/Limited-list.h b/asn1c_defs/all-defs/Limited-list.h new file mode 100644 index 0000000..d9b5da5 --- /dev/null +++ b/asn1c_defs/all-defs/Limited-list.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _Limited_list_H_ +#define _Limited_list_H_ + + +#include + +/* Including external dependencies */ +#include +#include "NRCGI.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/Links-to-log.c b/asn1c_defs/all-defs/Links-to-log.c new file mode 100644 index 0000000..a1a6d49 --- /dev/null +++ b/asn1c_defs/all-defs/Links-to-log.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "Links-to-log.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &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/asn1c_defs/all-defs/Links-to-log.h b/asn1c_defs/all-defs/Links-to-log.h new file mode 100644 index 0000000..edf11d5 --- /dev/null +++ b/asn1c_defs/all-defs/Links-to-log.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _Links_to_log_H_ +#define _Links_to_log_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/ListofEUTRACellsinEUTRACoordinationReq.c b/asn1c_defs/all-defs/ListofEUTRACellsinEUTRACoordinationReq.c new file mode 100644 index 0000000..12cb62e --- /dev/null +++ b/asn1c_defs/all-defs/ListofEUTRACellsinEUTRACoordinationReq.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ListofEUTRACellsinEUTRACoordinationReq.h" + +#include "ECGI.h" +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 */ + { 0, &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/asn1c_defs/all-defs/ListofEUTRACellsinEUTRACoordinationReq.h b/asn1c_defs/all-defs/ListofEUTRACellsinEUTRACoordinationReq.h new file mode 100644 index 0000000..f238c8a --- /dev/null +++ b/asn1c_defs/all-defs/ListofEUTRACellsinEUTRACoordinationReq.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ListofEUTRACellsinEUTRACoordinationReq_H_ +#define _ListofEUTRACellsinEUTRACoordinationReq_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ListofEUTRACellsinEUTRACoordinationResp.c b/asn1c_defs/all-defs/ListofEUTRACellsinEUTRACoordinationResp.c new file mode 100644 index 0000000..0028167 --- /dev/null +++ b/asn1c_defs/all-defs/ListofEUTRACellsinEUTRACoordinationResp.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ListofEUTRACellsinEUTRACoordinationResp.h" + +#include "ECGI.h" +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 */ + { 0, &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/asn1c_defs/all-defs/ListofEUTRACellsinEUTRACoordinationResp.h b/asn1c_defs/all-defs/ListofEUTRACellsinEUTRACoordinationResp.h new file mode 100644 index 0000000..6ca1381 --- /dev/null +++ b/asn1c_defs/all-defs/ListofEUTRACellsinEUTRACoordinationResp.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ListofEUTRACellsinEUTRACoordinationResp_H_ +#define _ListofEUTRACellsinEUTRACoordinationResp_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ListofEUTRACellsinNRCoordinationReq.c b/asn1c_defs/all-defs/ListofEUTRACellsinNRCoordinationReq.c new file mode 100644 index 0000000..e7a7896 --- /dev/null +++ b/asn1c_defs/all-defs/ListofEUTRACellsinNRCoordinationReq.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ListofEUTRACellsinNRCoordinationReq.h" + +#include "ECGI.h" +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 */ + { 0, &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/asn1c_defs/all-defs/ListofEUTRACellsinNRCoordinationReq.h b/asn1c_defs/all-defs/ListofEUTRACellsinNRCoordinationReq.h new file mode 100644 index 0000000..5b44d3f --- /dev/null +++ b/asn1c_defs/all-defs/ListofEUTRACellsinNRCoordinationReq.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ListofEUTRACellsinNRCoordinationReq_H_ +#define _ListofEUTRACellsinNRCoordinationReq_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ListofNRCellsinNRCoordinationReq.c b/asn1c_defs/all-defs/ListofNRCellsinNRCoordinationReq.c new file mode 100644 index 0000000..2725373 --- /dev/null +++ b/asn1c_defs/all-defs/ListofNRCellsinNRCoordinationReq.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ListofNRCellsinNRCoordinationReq.h" + +#include "NRCGI.h" +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 */ + { 0, &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/asn1c_defs/all-defs/ListofNRCellsinNRCoordinationReq.h b/asn1c_defs/all-defs/ListofNRCellsinNRCoordinationReq.h new file mode 100644 index 0000000..c047faf --- /dev/null +++ b/asn1c_defs/all-defs/ListofNRCellsinNRCoordinationReq.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ListofNRCellsinNRCoordinationReq_H_ +#define _ListofNRCellsinNRCoordinationReq_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ListofNRCellsinNRCoordinationResp.c b/asn1c_defs/all-defs/ListofNRCellsinNRCoordinationResp.c new file mode 100644 index 0000000..ae896ea --- /dev/null +++ b/asn1c_defs/all-defs/ListofNRCellsinNRCoordinationResp.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ListofNRCellsinNRCoordinationResp.h" + +#include "NRCGI.h" +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 */ + { 0, &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/asn1c_defs/all-defs/ListofNRCellsinNRCoordinationResp.h b/asn1c_defs/all-defs/ListofNRCellsinNRCoordinationResp.h new file mode 100644 index 0000000..5fcacf0 --- /dev/null +++ b/asn1c_defs/all-defs/ListofNRCellsinNRCoordinationResp.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ListofNRCellsinNRCoordinationResp_H_ +#define _ListofNRCellsinNRCoordinationResp_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/LoadIndicator.c b/asn1c_defs/all-defs/LoadIndicator.c new file mode 100644 index 0000000..7258a05 --- /dev/null +++ b/asn1c_defs/all-defs/LoadIndicator.c @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "LoadIndicator.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_LoadIndicator_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_LoadIndicator_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/LoadIndicator.h b/asn1c_defs/all-defs/LoadIndicator.h new file mode 100644 index 0000000..b3f9d71 --- /dev/null +++ b/asn1c_defs/all-defs/LoadIndicator.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _LoadIndicator_H_ +#define _LoadIndicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/LoadInformation.c b/asn1c_defs/all-defs/LoadInformation.c new file mode 100644 index 0000000..9d1f2b7 --- /dev/null +++ b/asn1c_defs/all-defs/LoadInformation.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P27, + 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/asn1c_defs/all-defs/LoadInformation.h b/asn1c_defs/all-defs/LoadInformation.h new file mode 100644 index 0000000..3b70e9f --- /dev/null +++ b/asn1c_defs/all-defs/LoadInformation.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _LoadInformation_H_ +#define _LoadInformation_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LoadInformation */ +typedef struct LoadInformation { + ProtocolIE_Container_8180P27_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 diff --git a/asn1c_defs/all-defs/LocationReportingInformation.c b/asn1c_defs/all-defs/LocationReportingInformation.c new file mode 100644 index 0000000..52dc16e --- /dev/null +++ b/asn1c_defs/all-defs/LocationReportingInformation.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P158, + 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/asn1c_defs/all-defs/LocationReportingInformation.h b/asn1c_defs/all-defs/LocationReportingInformation.h new file mode 100644 index 0000000..a42f3dd --- /dev/null +++ b/asn1c_defs/all-defs/LocationReportingInformation.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _LocationReportingInformation_H_ +#define _LocationReportingInformation_H_ + + +#include + +/* Including external dependencies */ +#include "EventType.h" +#include "ReportArea.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/M1PeriodicReporting.c b/asn1c_defs/all-defs/M1PeriodicReporting.c new file mode 100644 index 0000000..f88fc57 --- /dev/null +++ b/asn1c_defs/all-defs/M1PeriodicReporting.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P159, + 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/asn1c_defs/all-defs/M1PeriodicReporting.h b/asn1c_defs/all-defs/M1PeriodicReporting.h new file mode 100644 index 0000000..d5803bc --- /dev/null +++ b/asn1c_defs/all-defs/M1PeriodicReporting.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _M1PeriodicReporting_H_ +#define _M1PeriodicReporting_H_ + + +#include + +/* Including external dependencies */ +#include "ReportIntervalMDT.h" +#include "ReportAmountMDT.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/M1ReportingTrigger.c b/asn1c_defs/all-defs/M1ReportingTrigger.c new file mode 100644 index 0000000..beb17d8 --- /dev/null +++ b/asn1c_defs/all-defs/M1ReportingTrigger.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "M1ReportingTrigger.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_M1ReportingTrigger_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_M1ReportingTrigger_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/M1ReportingTrigger.h b/asn1c_defs/all-defs/M1ReportingTrigger.h new file mode 100644 index 0000000..a64ce72 --- /dev/null +++ b/asn1c_defs/all-defs/M1ReportingTrigger.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _M1ReportingTrigger_H_ +#define _M1ReportingTrigger_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/M1ThresholdEventA2.c b/asn1c_defs/all-defs/M1ThresholdEventA2.c new file mode 100644 index 0000000..697a471 --- /dev/null +++ b/asn1c_defs/all-defs/M1ThresholdEventA2.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P160, + 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/asn1c_defs/all-defs/M1ThresholdEventA2.h b/asn1c_defs/all-defs/M1ThresholdEventA2.h new file mode 100644 index 0000000..f6e47e7 --- /dev/null +++ b/asn1c_defs/all-defs/M1ThresholdEventA2.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _M1ThresholdEventA2_H_ +#define _M1ThresholdEventA2_H_ + + +#include + +/* Including external dependencies */ +#include "MeasurementThresholdA2.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/M3Configuration.c b/asn1c_defs/all-defs/M3Configuration.c new file mode 100644 index 0000000..38c79cd --- /dev/null +++ b/asn1c_defs/all-defs/M3Configuration.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P161, + 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/asn1c_defs/all-defs/M3Configuration.h b/asn1c_defs/all-defs/M3Configuration.h new file mode 100644 index 0000000..87d8ee8 --- /dev/null +++ b/asn1c_defs/all-defs/M3Configuration.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _M3Configuration_H_ +#define _M3Configuration_H_ + + +#include + +/* Including external dependencies */ +#include "M3period.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/M3period.c b/asn1c_defs/all-defs/M3period.c new file mode 100644 index 0000000..8be6cd7 --- /dev/null +++ b/asn1c_defs/all-defs/M3period.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "M3period.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_M3period_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_M3period_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/M3period.h b/asn1c_defs/all-defs/M3period.h new file mode 100644 index 0000000..d26c74e --- /dev/null +++ b/asn1c_defs/all-defs/M3period.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _M3period_H_ +#define _M3period_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/M4Configuration.c b/asn1c_defs/all-defs/M4Configuration.c new file mode 100644 index 0000000..4bcc7d8 --- /dev/null +++ b/asn1c_defs/all-defs/M4Configuration.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P162, + 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/asn1c_defs/all-defs/M4Configuration.h b/asn1c_defs/all-defs/M4Configuration.h new file mode 100644 index 0000000..fe3cf3b --- /dev/null +++ b/asn1c_defs/all-defs/M4Configuration.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _M4Configuration_H_ +#define _M4Configuration_H_ + + +#include + +/* Including external dependencies */ +#include "M4period.h" +#include "Links-to-log.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/M4period.c b/asn1c_defs/all-defs/M4period.c new file mode 100644 index 0000000..b9e1af2 --- /dev/null +++ b/asn1c_defs/all-defs/M4period.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "M4period.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_M4period_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_M4period_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/M4period.h b/asn1c_defs/all-defs/M4period.h new file mode 100644 index 0000000..fb1f648 --- /dev/null +++ b/asn1c_defs/all-defs/M4period.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _M4period_H_ +#define _M4period_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/M5Configuration.c b/asn1c_defs/all-defs/M5Configuration.c new file mode 100644 index 0000000..f0b3eca --- /dev/null +++ b/asn1c_defs/all-defs/M5Configuration.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P163, + 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/asn1c_defs/all-defs/M5Configuration.h b/asn1c_defs/all-defs/M5Configuration.h new file mode 100644 index 0000000..5e44ac4 --- /dev/null +++ b/asn1c_defs/all-defs/M5Configuration.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _M5Configuration_H_ +#define _M5Configuration_H_ + + +#include + +/* Including external dependencies */ +#include "M5period.h" +#include "Links-to-log.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/M5period.c b/asn1c_defs/all-defs/M5period.c new file mode 100644 index 0000000..9191d46 --- /dev/null +++ b/asn1c_defs/all-defs/M5period.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "M5period.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_M5period_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_M5period_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/M5period.h b/asn1c_defs/all-defs/M5period.h new file mode 100644 index 0000000..781d169 --- /dev/null +++ b/asn1c_defs/all-defs/M5period.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _M5period_H_ +#define _M5period_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/M6Configuration.c b/asn1c_defs/all-defs/M6Configuration.c new file mode 100644 index 0000000..b408d0f --- /dev/null +++ b/asn1c_defs/all-defs/M6Configuration.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P164, + 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/asn1c_defs/all-defs/M6Configuration.h b/asn1c_defs/all-defs/M6Configuration.h new file mode 100644 index 0000000..e1f13c8 --- /dev/null +++ b/asn1c_defs/all-defs/M6Configuration.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _M6Configuration_H_ +#define _M6Configuration_H_ + + +#include + +/* Including external dependencies */ +#include "M6report-interval.h" +#include "M6delay-threshold.h" +#include "Links-to-log.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/M6delay-threshold.c b/asn1c_defs/all-defs/M6delay-threshold.c new file mode 100644 index 0000000..a4ab6ba --- /dev/null +++ b/asn1c_defs/all-defs/M6delay-threshold.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "M6delay-threshold.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_M6delay_threshold_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_M6delay_threshold_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/M6delay-threshold.h b/asn1c_defs/all-defs/M6delay-threshold.h new file mode 100644 index 0000000..37bd3bd --- /dev/null +++ b/asn1c_defs/all-defs/M6delay-threshold.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _M6delay_threshold_H_ +#define _M6delay_threshold_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/M6report-interval.c b/asn1c_defs/all-defs/M6report-interval.c new file mode 100644 index 0000000..22ba233 --- /dev/null +++ b/asn1c_defs/all-defs/M6report-interval.c @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "M6report-interval.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_M6report_interval_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_M6report_interval_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/M6report-interval.h b/asn1c_defs/all-defs/M6report-interval.h new file mode 100644 index 0000000..b4d7ba4 --- /dev/null +++ b/asn1c_defs/all-defs/M6report-interval.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _M6report_interval_H_ +#define _M6report_interval_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/M7Configuration.c b/asn1c_defs/all-defs/M7Configuration.c new file mode 100644 index 0000000..d179d26 --- /dev/null +++ b/asn1c_defs/all-defs/M7Configuration.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P165, + 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/asn1c_defs/all-defs/M7Configuration.h b/asn1c_defs/all-defs/M7Configuration.h new file mode 100644 index 0000000..6a88713 --- /dev/null +++ b/asn1c_defs/all-defs/M7Configuration.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _M7Configuration_H_ +#define _M7Configuration_H_ + + +#include + +/* Including external dependencies */ +#include "M7period.h" +#include "Links-to-log.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/M7period.c b/asn1c_defs/all-defs/M7period.c new file mode 100644 index 0000000..db2daa6 --- /dev/null +++ b/asn1c_defs/all-defs/M7period.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_M7period_constr_1, M7period_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/M7period.h b/asn1c_defs/all-defs/M7period.h new file mode 100644 index 0000000..2f5124f --- /dev/null +++ b/asn1c_defs/all-defs/M7period.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _M7period_H_ +#define _M7period_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/MBMS-Service-Area-Identity-List.c b/asn1c_defs/all-defs/MBMS-Service-Area-Identity-List.c new file mode 100644 index 0000000..9cd21c4 --- /dev/null +++ b/asn1c_defs/all-defs/MBMS-Service-Area-Identity-List.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "MBMS-Service-Area-Identity-List.h" + +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 */ + { 0, &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/asn1c_defs/all-defs/MBMS-Service-Area-Identity-List.h b/asn1c_defs/all-defs/MBMS-Service-Area-Identity-List.h new file mode 100644 index 0000000..7570e55 --- /dev/null +++ b/asn1c_defs/all-defs/MBMS-Service-Area-Identity-List.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _MBMS_Service_Area_Identity_List_H_ +#define _MBMS_Service_Area_Identity_List_H_ + + +#include + +/* Including external dependencies */ +#include "MBMS-Service-Area-Identity.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/MBMS-Service-Area-Identity.c b/asn1c_defs/all-defs/MBMS-Service-Area-Identity.c new file mode 100644 index 0000000..ea1ebbf --- /dev/null +++ b/asn1c_defs/all-defs/MBMS-Service-Area-Identity.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &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/asn1c_defs/all-defs/MBMS-Service-Area-Identity.h b/asn1c_defs/all-defs/MBMS-Service-Area-Identity.h new file mode 100644 index 0000000..9a4854e --- /dev/null +++ b/asn1c_defs/all-defs/MBMS-Service-Area-Identity.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _MBMS_Service_Area_Identity_H_ +#define _MBMS_Service_Area_Identity_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/MBSFN-Subframe-Info.c b/asn1c_defs/all-defs/MBSFN-Subframe-Info.c new file mode 100644 index 0000000..ad51385 --- /dev/null +++ b/asn1c_defs/all-defs/MBSFN-Subframe-Info.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P168, + 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/asn1c_defs/all-defs/MBSFN-Subframe-Info.h b/asn1c_defs/all-defs/MBSFN-Subframe-Info.h new file mode 100644 index 0000000..7a73b72 --- /dev/null +++ b/asn1c_defs/all-defs/MBSFN-Subframe-Info.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _MBSFN_Subframe_Info_H_ +#define _MBSFN_Subframe_Info_H_ + + +#include + +/* Including external dependencies */ +#include "RadioframeAllocationPeriod.h" +#include "RadioframeAllocationOffset.h" +#include "SubframeAllocation.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/MBSFN-Subframe-Infolist.c b/asn1c_defs/all-defs/MBSFN-Subframe-Infolist.c new file mode 100644 index 0000000..bd9157c --- /dev/null +++ b/asn1c_defs/all-defs/MBSFN-Subframe-Infolist.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "MBSFN-Subframe-Infolist.h" + +#include "MBSFN-Subframe-Info.h" +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 */ + { 0, &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/asn1c_defs/all-defs/MBSFN-Subframe-Infolist.h b/asn1c_defs/all-defs/MBSFN-Subframe-Infolist.h new file mode 100644 index 0000000..e00fea3 --- /dev/null +++ b/asn1c_defs/all-defs/MBSFN-Subframe-Infolist.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _MBSFN_Subframe_Infolist_H_ +#define _MBSFN_Subframe_Infolist_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/MDT-Activation.c b/asn1c_defs/all-defs/MDT-Activation.c new file mode 100644 index 0000000..70c8b12 --- /dev/null +++ b/asn1c_defs/all-defs/MDT-Activation.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "MDT-Activation.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_MDT_Activation_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_MDT_Activation_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/MDT-Activation.h b/asn1c_defs/all-defs/MDT-Activation.h new file mode 100644 index 0000000..ee47e1f --- /dev/null +++ b/asn1c_defs/all-defs/MDT-Activation.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _MDT_Activation_H_ +#define _MDT_Activation_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/MDT-Configuration.c b/asn1c_defs/all-defs/MDT-Configuration.c new file mode 100644 index 0000000..e074ff7 --- /dev/null +++ b/asn1c_defs/all-defs/MDT-Configuration.c @@ -0,0 +1,115 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P166, + 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/asn1c_defs/all-defs/MDT-Configuration.h b/asn1c_defs/all-defs/MDT-Configuration.h new file mode 100644 index 0000000..34808fa --- /dev/null +++ b/asn1c_defs/all-defs/MDT-Configuration.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _MDT_Configuration_H_ +#define _MDT_Configuration_H_ + + +#include + +/* Including external dependencies */ +#include "MDT-Activation.h" +#include "AreaScopeOfMDT.h" +#include "MeasurementsToActivate.h" +#include "M1ReportingTrigger.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/MDT-Location-Info.c b/asn1c_defs/all-defs/MDT-Location-Info.c new file mode 100644 index 0000000..3add422 --- /dev/null +++ b/asn1c_defs/all-defs/MDT-Location-Info.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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 */ + { 0, &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/asn1c_defs/all-defs/MDT-Location-Info.h b/asn1c_defs/all-defs/MDT-Location-Info.h new file mode 100644 index 0000000..955d105 --- /dev/null +++ b/asn1c_defs/all-defs/MDT-Location-Info.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _MDT_Location_Info_H_ +#define _MDT_Location_Info_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/MDTPLMNList.c b/asn1c_defs/all-defs/MDTPLMNList.c new file mode 100644 index 0000000..a685641 --- /dev/null +++ b/asn1c_defs/all-defs/MDTPLMNList.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "MDTPLMNList.h" + +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 */ + { 0, &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/asn1c_defs/all-defs/MDTPLMNList.h b/asn1c_defs/all-defs/MDTPLMNList.h new file mode 100644 index 0000000..a1284d5 --- /dev/null +++ b/asn1c_defs/all-defs/MDTPLMNList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _MDTPLMNList_H_ +#define _MDTPLMNList_H_ + + +#include + +/* Including external dependencies */ +#include "PLMN-Identity.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/MME-Code.c b/asn1c_defs/all-defs/MME-Code.c new file mode 100644 index 0000000..10aa3cc --- /dev/null +++ b/asn1c_defs/all-defs/MME-Code.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_MME_Code_constr_1, MME_Code_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/MME-Code.h b/asn1c_defs/all-defs/MME-Code.h new file mode 100644 index 0000000..0411a2e --- /dev/null +++ b/asn1c_defs/all-defs/MME-Code.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _MME_Code_H_ +#define _MME_Code_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/MME-Group-ID.c b/asn1c_defs/all-defs/MME-Group-ID.c new file mode 100644 index 0000000..7cfafd2 --- /dev/null +++ b/asn1c_defs/all-defs/MME-Group-ID.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &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/asn1c_defs/all-defs/MME-Group-ID.h b/asn1c_defs/all-defs/MME-Group-ID.h new file mode 100644 index 0000000..6884fec --- /dev/null +++ b/asn1c_defs/all-defs/MME-Group-ID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _MME_Group_ID_H_ +#define _MME_Group_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/MakeBeforeBreakIndicator.c b/asn1c_defs/all-defs/MakeBeforeBreakIndicator.c new file mode 100644 index 0000000..0a3b27e --- /dev/null +++ b/asn1c_defs/all-defs/MakeBeforeBreakIndicator.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "MakeBeforeBreakIndicator.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_MakeBeforeBreakIndicator_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_MakeBeforeBreakIndicator_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/MakeBeforeBreakIndicator.h b/asn1c_defs/all-defs/MakeBeforeBreakIndicator.h new file mode 100644 index 0000000..c2a099b --- /dev/null +++ b/asn1c_defs/all-defs/MakeBeforeBreakIndicator.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _MakeBeforeBreakIndicator_H_ +#define _MakeBeforeBreakIndicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/Makefile.am.libasncodec b/asn1c_defs/all-defs/Makefile.am.libasncodec new file mode 100644 index 0000000..79b5650 --- /dev/null +++ b/asn1c_defs/all-defs/Makefile.am.libasncodec @@ -0,0 +1,1583 @@ +ASN_MODULE_SRCS= \ + E2AP-PDU.c \ + InitiatingMessage.c \ + SuccessfulOutcome.c \ + UnsuccessfulOutcome.c \ + RICsubscriptionRequest.c \ + RICsubscription.c \ + RICactions-ToBeSetup-List.c \ + RICaction-ToBeSetup-Item.c \ + RICsubscriptionResponse.c \ + RICaction-Admitted-List.c \ + RICaction-Admitted-Item.c \ + RICaction-NotAdmitted-List.c \ + RICaction-NotAdmitted-Item.c \ + RICsubscriptionFailure.c \ + RICsubscriptionDeleteRequest.c \ + RICsubscriptionDeleteResponse.c \ + RICsubscriptionDeleteFailure.c \ + RICindication.c \ + RICcontrolRequest.c \ + RICcontrolAcknowledge.c \ + RICcontrolFailure.c \ + RICserviceUpdate.c \ + RANfunctions-List.c \ + RANfunction-Item.c \ + RANfunctionsID-List.c \ + RANfunctionID-Item.c \ + RICserviceUpdateAcknowledge.c \ + RANfunctionsIDcause-List.c \ + RANfunctionIDcause-Item.c \ + RICserviceUpdateFailure.c \ + RICserviceQuery.c \ + CauseRIC.c \ + RANfunctionDefinition.c \ + RANfunctionID.c \ + RICactionDefinition.c \ + RICactionID.c \ + RICactionType.c \ + RICcallProcessID.c \ + RICcause.c \ + RICcontrolAckRequest.c \ + RICcontrolHeader.c \ + RICcontrolMessage.c \ + RICcontrolStatus.c \ + RICeventTriggerDefinition.c \ + RICindicationHeader.c \ + RICindicationMessage.c \ + RICindicationSN.c \ + RICindicationType.c \ + RICrequestID.c \ + RICsubsequentAction.c \ + RICsubsequentActionType.c \ + RICtimeToWait.c \ + X2AP-PDU.c \ + X2InitiatingMessage.c \ + X2SuccessfulOutcome.c \ + X2UnsuccessfulOutcome.c \ + HandoverRequest.c \ + UE-ContextInformation.c \ + E-RABs-ToBeSetup-List.c \ + E-RABs-ToBeSetup-Item.c \ + MobilityInformation.c \ + UE-ContextReferenceAtSeNB.c \ + UE-ContextReferenceAtWT.c \ + UE-ContextReferenceAtSgNB.c \ + HandoverRequestAcknowledge.c \ + E-RABs-Admitted-List.c \ + E-RABs-Admitted-Item.c \ + HandoverPreparationFailure.c \ + HandoverReport.c \ + SNStatusTransfer.c \ + E-RABs-SubjectToStatusTransfer-List.c \ + E-RABs-SubjectToStatusTransfer-Item.c \ + UEContextRelease.c \ + HandoverCancel.c \ + ErrorIndication.c \ + ResetRequest.c \ + ResetResponse.c \ + X2SetupRequest.c \ + X2SetupResponse.c \ + X2SetupFailure.c \ + LoadInformation.c \ + CellInformation-List.c \ + CellInformation-Item.c \ + ENBConfigurationUpdate.c \ + ServedCellsToModify.c \ + ServedCellsToModify-Item.c \ + Old-ECGIs.c \ + ENBConfigurationUpdateAcknowledge.c \ + ENBConfigurationUpdateFailure.c \ + ResourceStatusRequest.c \ + CellToReport-List.c \ + CellToReport-Item.c \ + ReportingPeriodicity.c \ + PartialSuccessIndicator.c \ + ResourceStatusResponse.c \ + MeasurementInitiationResult-List.c \ + MeasurementInitiationResult-Item.c \ + MeasurementFailureCause-List.c \ + MeasurementFailureCause-Item.c \ + ResourceStatusFailure.c \ + CompleteFailureCauseInformation-List.c \ + CompleteFailureCauseInformation-Item.c \ + ResourceStatusUpdate.c \ + CellMeasurementResult-List.c \ + CellMeasurementResult-Item.c \ + PrivateMessage.c \ + MobilityChangeRequest.c \ + MobilityChangeAcknowledge.c \ + MobilityChangeFailure.c \ + RLFIndication.c \ + CellActivationRequest.c \ + ServedCellsToActivate.c \ + ServedCellsToActivate-Item.c \ + CellActivationResponse.c \ + ActivatedCellList.c \ + ActivatedCellList-Item.c \ + CellActivationFailure.c \ + X2Release.c \ + X2APMessageTransfer.c \ + RNL-Header.c \ + X2AP-Message.c \ + SeNBAdditionRequest.c \ + E-RABs-ToBeAdded-List.c \ + E-RABs-ToBeAdded-Item.c \ + E-RABs-ToBeAdded-Item-SCG-Bearer.c \ + E-RABs-ToBeAdded-Item-Split-Bearer.c \ + SeNBAdditionRequestAcknowledge.c \ + E-RABs-Admitted-ToBeAdded-List.c \ + E-RABs-Admitted-ToBeAdded-Item.c \ + E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.c \ + E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.c \ + SeNBAdditionRequestReject.c \ + SeNBReconfigurationComplete.c \ + ResponseInformationSeNBReconfComp.c \ + ResponseInformationSeNBReconfComp-SuccessItem.c \ + ResponseInformationSeNBReconfComp-RejectByMeNBItem.c \ + SeNBModificationRequest.c \ + UE-ContextInformationSeNBModReq.c \ + E-RABs-ToBeAdded-List-ModReq.c \ + E-RABs-ToBeAdded-ModReqItem.c \ + E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.c \ + E-RABs-ToBeAdded-ModReqItem-Split-Bearer.c \ + E-RABs-ToBeModified-List-ModReq.c \ + E-RABs-ToBeModified-ModReqItem.c \ + E-RABs-ToBeModified-ModReqItem-SCG-Bearer.c \ + E-RABs-ToBeModified-ModReqItem-Split-Bearer.c \ + E-RABs-ToBeReleased-List-ModReq.c \ + E-RABs-ToBeReleased-ModReqItem.c \ + E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.c \ + E-RABs-ToBeReleased-ModReqItem-Split-Bearer.c \ + SeNBModificationRequestAcknowledge.c \ + E-RABs-Admitted-ToBeAdded-ModAckList.c \ + E-RABs-Admitted-ToBeAdded-ModAckItem.c \ + E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.c \ + E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.c \ + E-RABs-Admitted-ToBeModified-ModAckList.c \ + E-RABs-Admitted-ToBeModified-ModAckItem.c \ + E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer.c \ + E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer.c \ + E-RABs-Admitted-ToBeReleased-ModAckList.c \ + E-RABs-Admitted-ToReleased-ModAckItem.c \ + E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.c \ + E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer.c \ + SeNBModificationRequestReject.c \ + SeNBModificationRequired.c \ + E-RABs-ToBeReleased-ModReqd.c \ + E-RABs-ToBeReleased-ModReqdItem.c \ + SeNBModificationConfirm.c \ + SeNBModificationRefuse.c \ + SeNBReleaseRequest.c \ + E-RABs-ToBeReleased-List-RelReq.c \ + E-RABs-ToBeReleased-RelReqItem.c \ + E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.c \ + E-RABs-ToBeReleased-RelReqItem-Split-Bearer.c \ + SeNBReleaseRequired.c \ + SeNBReleaseConfirm.c \ + E-RABs-ToBeReleased-List-RelConf.c \ + E-RABs-ToBeReleased-RelConfItem.c \ + E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.c \ + E-RABs-ToBeReleased-RelConfItem-Split-Bearer.c \ + SeNBCounterCheckRequest.c \ + E-RABs-SubjectToCounterCheck-List.c \ + E-RABs-SubjectToCounterCheckItem.c \ + X2RemovalRequest.c \ + X2RemovalResponse.c \ + X2RemovalFailure.c \ + RetrieveUEContextRequest.c \ + RetrieveUEContextResponse.c \ + UE-ContextInformationRetrieve.c \ + E-RABs-ToBeSetup-ListRetrieve.c \ + E-RABs-ToBeSetupRetrieve-Item.c \ + RetrieveUEContextFailure.c \ + SgNBAdditionRequest.c \ + E-RABs-ToBeAdded-SgNBAddReqList.c \ + E-RABs-ToBeAdded-SgNBAddReq-Item.c \ + E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.c \ + E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.c \ + SgNBAdditionRequestAcknowledge.c \ + E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.c \ + E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.c \ + E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.c \ + E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.c \ + SgNBAdditionRequestReject.c \ + SgNBReconfigurationComplete.c \ + ResponseInformationSgNBReconfComp.c \ + ResponseInformationSgNBReconfComp-SuccessItem.c \ + ResponseInformationSgNBReconfComp-RejectByMeNBItem.c \ + SgNBModificationRequest.c \ + UE-ContextInformation-SgNBModReq.c \ + E-RABs-ToBeAdded-SgNBModReq-List.c \ + E-RABs-ToBeAdded-SgNBModReq-Item.c \ + E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.c \ + E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.c \ + E-RABs-ToBeModified-SgNBModReq-List.c \ + E-RABs-ToBeModified-SgNBModReq-Item.c \ + E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.c \ + E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent.c \ + E-RABs-ToBeReleased-SgNBModReq-List.c \ + E-RABs-ToBeReleased-SgNBModReq-Item.c \ + E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.c \ + E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.c \ + SgNBModificationRequestAcknowledge.c \ + E-RABs-Admitted-ToBeAdded-SgNBModAckList.c \ + E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.c \ + E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.c \ + E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.c \ + E-RABs-Admitted-ToBeModified-SgNBModAckList.c \ + E-RABs-Admitted-ToBeModified-SgNBModAck-Item.c \ + E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.c \ + E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent.c \ + E-RABs-Admitted-ToBeReleased-SgNBModAckList.c \ + E-RABs-Admitted-ToReleased-SgNBModAck-Item.c \ + E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.c \ + E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.c \ + SgNBModificationRequestReject.c \ + SgNBModificationRequired.c \ + E-RABs-ToBeReleased-SgNBModReqdList.c \ + E-RABs-ToBeReleased-SgNBModReqd-Item.c \ + E-RABs-ToBeModified-SgNBModReqdList.c \ + E-RABs-ToBeModified-SgNBModReqd-Item.c \ + E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.c \ + E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent.c \ + SgNBModificationConfirm.c \ + E-RABs-AdmittedToBeModified-SgNBModConfList.c \ + E-RABs-AdmittedToBeModified-SgNBModConf-Item.c \ + E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent.c \ + E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent.c \ + SgNBModificationRefuse.c \ + SgNBReleaseRequest.c \ + E-RABs-ToBeReleased-SgNBRelReqList.c \ + E-RABs-ToBeReleased-SgNBRelReq-Item.c \ + E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.c \ + E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.c \ + SgNBReleaseRequestAcknowledge.c \ + E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.c \ + E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.c \ + SgNBReleaseRequestReject.c \ + SgNBReleaseRequired.c \ + E-RABs-ToBeReleased-SgNBRelReqdList.c \ + E-RABs-ToBeReleased-SgNBRelReqd-Item.c \ + SgNBReleaseConfirm.c \ + E-RABs-ToBeReleased-SgNBRelConfList.c \ + E-RABs-ToBeReleased-SgNBRelConf-Item.c \ + E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.c \ + E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.c \ + SgNBCounterCheckRequest.c \ + E-RABs-SubjectToSgNBCounterCheck-List.c \ + E-RABs-SubjectToSgNBCounterCheck-Item.c \ + SgNBChangeRequired.c \ + SgNBChangeConfirm.c \ + E-RABs-ToBeReleased-SgNBChaConfList.c \ + E-RABs-ToBeReleased-SgNBChaConf-Item.c \ + E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.c \ + E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.c \ + RRCTransfer.c \ + SgNBChangeRefuse.c \ + ENDCX2SetupRequest.c \ + InitiatingNodeType-EndcX2Setup.c \ + ServedEUTRAcellsENDCX2ManagementList.c \ + ServedNRcellsENDCX2ManagementList.c \ + ServedNRCell-Information.c \ + FDD-InfoServedNRCell-Information.c \ + FDD-InfoNeighbourServedNRCell-Information.c \ + TDD-InfoServedNRCell-Information.c \ + TDD-InfoNeighbourServedNRCell-Information.c \ + NRNeighbour-Information.c \ + CellAssistanceInformation.c \ + Limited-list.c \ + ENDCX2SetupResponse.c \ + RespondingNodeType-EndcX2Setup.c \ + ENDCX2SetupFailure.c \ + ENDCConfigurationUpdate.c \ + InitiatingNodeType-EndcConfigUpdate.c \ + ServedEUTRAcellsToModifyListENDCConfUpd.c \ + ServedEUTRAcellsToDeleteListENDCConfUpd.c \ + ServedNRcellsToModifyENDCConfUpdList.c \ + ServedNRCellsToModify-Item.c \ + ServedNRcellsToDeleteENDCConfUpdList.c \ + ENDCConfigurationUpdateAcknowledge.c \ + RespondingNodeType-EndcConfigUpdate.c \ + ENDCConfigurationUpdateFailure.c \ + ENDCCellActivationRequest.c \ + ServedNRCellsToActivate.c \ + ServedNRCellsToActivate-Item.c \ + ENDCCellActivationResponse.c \ + ActivatedNRCellList.c \ + ActivatedNRCellList-Item.c \ + ENDCCellActivationFailure.c \ + SecondaryRATDataUsageReport.c \ + SgNBActivityNotification.c \ + ENDCPartialResetRequired.c \ + ENDCPartialResetConfirm.c \ + EUTRANRCellResourceCoordinationRequest.c \ + InitiatingNodeType-EutranrCellResourceCoordination.c \ + ListofEUTRACellsinEUTRACoordinationReq.c \ + ListofEUTRACellsinNRCoordinationReq.c \ + ListofNRCellsinNRCoordinationReq.c \ + EUTRANRCellResourceCoordinationResponse.c \ + RespondingNodeType-EutranrCellResourceCoordination.c \ + ListofEUTRACellsinEUTRACoordinationResp.c \ + ListofNRCellsinNRCoordinationResp.c \ + ENDCX2RemovalRequest.c \ + InitiatingNodeType-EndcX2Removal.c \ + ENDCX2RemovalResponse.c \ + RespondingNodeType-EndcX2Removal.c \ + ENDCX2RemovalFailure.c \ + DataForwardingAddressIndication.c \ + E-RABs-DataForwardingAddress-List.c \ + E-RABs-DataForwardingAddress-Item.c \ + GNBStatusIndication.c \ + ABSInformation.c \ + ABSInformationFDD.c \ + ABSInformationTDD.c \ + ABS-Status.c \ + ActivationID.c \ + AdditionalSpecialSubframe-Info.c \ + AdditionalSpecialSubframePatterns.c \ + AdditionalSpecialSubframeExtension-Info.c \ + AdditionalSpecialSubframePatternsExtension.c \ + AerialUEsubscriptionInformation.c \ + AllocationAndRetentionPriority.c \ + AreaScopeOfMDT.c \ + AreaScopeOfQMC.c \ + AS-SecurityInformation.c \ + BandwidthReducedSI.c \ + BearerType.c \ + BenefitMetric.c \ + BitRate.c \ + BroadcastPLMNs-Item.c \ + BluetoothMeasurementConfiguration.c \ + BluetoothMeasConfigNameList.c \ + BluetoothMeasConfig.c \ + BluetoothName.c \ + CapacityValue.c \ + Cause.c \ + CauseMisc.c \ + CauseProtocol.c \ + CauseRadioNetwork.c \ + CauseTransport.c \ + CellBasedMDT.c \ + CellBasedQMC.c \ + CellCapacityClassValue.c \ + CellDeploymentStatusIndicator.c \ + CellIdListforMDT.c \ + CellIdListforQMC.c \ + CellReplacingInfo.c \ + CellReportingIndicator.c \ + Cell-Size.c \ + CellType.c \ + CNTypeRestrictions.c \ + CNTypeRestrictionsItem.c \ + CoMPHypothesisSet.c \ + CoMPHypothesisSetItem.c \ + CoMPInformation.c \ + CoMPInformationItem.c \ + CoMPInformationStartTime.c \ + CompositeAvailableCapacity.c \ + CompositeAvailableCapacityGroup.c \ + Correlation-ID.c \ + COUNTvalue.c \ + COUNTValueExtended.c \ + COUNTvaluePDCP-SNlength18.c \ + CoverageModificationList.c \ + CoverageModification-Item.c \ + CriticalityDiagnostics.c \ + CriticalityDiagnostics-IE-List.c \ + CRNTI.c \ + CSGMembershipStatus.c \ + CSG-Id.c \ + CSIReportList.c \ + CSIReportPerCSIProcess.c \ + CSIReportPerCSIProcessItem.c \ + CyclicPrefixDL.c \ + CyclicPrefixUL.c \ + DataTrafficResources.c \ + DataTrafficResourceIndication.c \ + DeactivationIndication.c \ + DeliveryStatus.c \ + DL-ABS-status.c \ + DL-Forwarding.c \ + DL-GBR-PRB-usage.c \ + DL-non-GBR-PRB-usage.c \ + DLResourceBitmapULandDLSharing.c \ + DLResourcesULandDLSharing.c \ + DL-scheduling-PDCCH-CCE-usage.c \ + DL-Total-PRB-usage.c \ + DRB-ID.c \ + DuplicationActivation.c \ + DynamicDLTransmissionInformation.c \ + DynamicNAICSInformation.c \ + EARFCN.c \ + EARFCNExtension.c \ + ECGI.c \ + EnhancedRNTP.c \ + EnhancedRNTPStartTime.c \ + ENB-ID.c \ + EncryptionAlgorithms.c \ + EN-DC-ResourceConfiguration.c \ + EPLMNs.c \ + ERABActivityNotifyItemList.c \ + ERABActivityNotifyItem.c \ + E-RAB-ID.c \ + E-RAB-Level-QoS-Parameters.c \ + E-RAB-List.c \ + E-RAB-Item.c \ + E-RABUsageReportList.c \ + E-RABUsageReport-Item.c \ + EUTRA-Mode-Info.c \ + EUTRANCellIdentifier.c \ + EUTRANTraceID.c \ + EventType.c \ + ExpectedUEBehaviour.c \ + ExpectedUEActivityBehaviour.c \ + ExpectedActivityPeriod.c \ + ExpectedIdlePeriod.c \ + ExpectedHOInterval.c \ + ExtendedULInterferenceOverloadInfo.c \ + ExtendedBitRate.c \ + FDD-Info.c \ + ForbiddenInterRATs.c \ + ForbiddenTAs.c \ + ForbiddenTAs-Item.c \ + ForbiddenTACs.c \ + ForbiddenLAs.c \ + ForbiddenLAs-Item.c \ + ForbiddenLACs.c \ + Fourframes.c \ + FreqBandIndicator.c \ + FreqBandIndicatorPriority.c \ + FreqBandNrItem.c \ + GBR-QosInformation.c \ + GlobalENB-ID.c \ + GlobalGNB-ID.c \ + GNBOverloadInformation.c \ + GTPtunnelEndpoint.c \ + GTP-TEI.c \ + GUGroupIDList.c \ + GU-Group-ID.c \ + GUMMEI.c \ + GNB-ID.c \ + HandoverReportType.c \ + HandoverRestrictionList.c \ + HFN.c \ + HFNModified.c \ + HFNforPDCP-SNlength18.c \ + HWLoadIndicator.c \ + IntegrityProtectionAlgorithms.c \ + InterfacesToTrace.c \ + InvokeIndication.c \ + Key-eNodeB-Star.c \ + LAC.c \ + LastVisitedCell-Item.c \ + LastVisitedEUTRANCellInformation.c \ + LastVisitedGERANCellInformation.c \ + LastVisitedNGRANCellInformation.c \ + LastVisitedUTRANCellInformation.c \ + LCID.c \ + LHN-ID.c \ + Links-to-log.c \ + LoadIndicator.c \ + LocationReportingInformation.c \ + M1PeriodicReporting.c \ + M1ReportingTrigger.c \ + M1ThresholdEventA2.c \ + M3Configuration.c \ + M3period.c \ + M4Configuration.c \ + M4period.c \ + M5Configuration.c \ + M5period.c \ + M6Configuration.c \ + M6report-interval.c \ + M6delay-threshold.c \ + M7Configuration.c \ + M7period.c \ + MakeBeforeBreakIndicator.c \ + ManagementBasedMDTallowed.c \ + Masked-IMEISV.c \ + MDT-Activation.c \ + MDT-Configuration.c \ + MDTPLMNList.c \ + MDT-Location-Info.c \ + Measurement-ID.c \ + MeasurementsToActivate.c \ + MeasurementThresholdA2.c \ + MeNBCoordinationAssistanceInformation.c \ + MeNBResourceCoordinationInformation.c \ + MeNBtoSeNBContainer.c \ + MME-Group-ID.c \ + MME-Code.c \ + MBMS-Service-Area-Identity-List.c \ + MBMS-Service-Area-Identity.c \ + MBSFN-Subframe-Infolist.c \ + MBSFN-Subframe-Info.c \ + MobilityParametersModificationRange.c \ + MobilityParametersInformation.c \ + MultibandInfoList.c \ + BandInfo.c \ + MeNBtoSgNBContainer.c \ + SplitSRBs.c \ + SplitSRB.c \ + UENRMeasurement.c \ + Neighbour-Information.c \ + NextHopChainingCount.c \ + NewDRBIDrequest.c \ + Number-of-Antennaports.c \ + NRFreqInfo.c \ + NRCellIdentifier.c \ + NRCGI.c \ + NRPCI.c \ + NRrestrictioninEPSasSecondaryRAT.c \ + NRrestrictionin5GS.c \ + NRencryptionAlgorithms.c \ + NRintegrityProtectionAlgorithms.c \ + NR-TxBW.c \ + NRNRB.c \ + NRSCS.c \ + NRS-NSSS-PowerOffset.c \ + FiveGS-TAC.c \ + NRUESecurityCapabilities.c \ + NSSS-NumOccasionDifferentPrecoder.c \ + OffsetOfNbiotChannelNumberToEARFCN.c \ + Oneframe.c \ + Packet-LossRate.c \ + PA-Values.c \ + PDCPChangeIndication.c \ + PDCP-SN.c \ + PDCP-SNExtended.c \ + PDCP-SNlength18.c \ + PDCPSnLength.c \ + PCI.c \ + PLMN-Identity.c \ + Port-Number.c \ + PRACH-Configuration.c \ + PLMNAreaBasedQMC.c \ + PLMNListforQMC.c \ + Pre-emptionCapability.c \ + Pre-emptionVulnerability.c \ + PriorityLevel.c \ + ProSeAuthorized.c \ + ProSeDirectDiscovery.c \ + ProSeDirectCommunication.c \ + ProSeUEtoNetworkRelaying.c \ + ProtectedEUTRAResourceIndication.c \ + ProtectedFootprintTimePattern.c \ + ProtectedResourceList.c \ + ProtectedResourceList-Item.c \ + QCI.c \ + RadioframeAllocationOffset.c \ + RadioframeAllocationPeriod.c \ + RadioResourceStatus.c \ + ReceiveStatusofULPDCPSDUs.c \ + ReceiveStatusOfULPDCPSDUsExtended.c \ + ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.c \ + Reestablishment-Indication.c \ + Registration-Request.c \ + RelativeNarrowbandTxPower.c \ + ReplacingCellsList.c \ + ReplacingCellsList-Item.c \ + ReportAmountMDT.c \ + ReportArea.c \ + ReportCharacteristics.c \ + ReportingPeriodicityCSIR.c \ + ReportingPeriodicityRSRPMR.c \ + ReportIntervalMDT.c \ + ReservedSubframePattern.c \ + ResourceType.c \ + ResumeID.c \ + RLCMode.c \ + RLC-Status.c \ + RNTP-Threshold.c \ + RRC-Config-Ind.c \ + RRC-Context.c \ + RRCConnReestabIndicator.c \ + RRCConnSetupIndicator.c \ + RSRPMeasurementResult.c \ + RSRPMRList.c \ + RRCContainer.c \ + S1TNLLoadIndicator.c \ + SCGChangeIndication.c \ + SecondaryRATUsageReportList.c \ + SecondaryRATUsageReport-Item.c \ + SeNBSecurityKey.c \ + SeNBtoMeNBContainer.c \ + ServedCells.c \ + ServedCell-Information.c \ + ServiceType.c \ + SgNBCoordinationAssistanceInformation.c \ + SgNBResourceCoordinationInformation.c \ + SgNB-UE-X2AP-ID.c \ + SIPTOBearerDeactivationIndication.c \ + SharedResourceType.c \ + ShortMAC-I.c \ + SGNB-Addition-Trigger-Ind.c \ + SourceOfUEActivityBehaviourInformation.c \ + SpecialSubframe-Info.c \ + SpecialSubframePatterns.c \ + SpectrumSharingGroupID.c \ + SubbandCQI.c \ + Subscription-Based-UE-DifferentiationInfo.c \ + ScheduledCommunicationTime.c \ + SRVCCOperationPossible.c \ + SubbandCQICodeword0.c \ + SubbandCQICodeword1.c \ + SubbandCQIList.c \ + SubbandCQIItem.c \ + SubbandSize.c \ + SubscriberProfileIDforRFP.c \ + SubframeAllocation.c \ + SubframeAssignment.c \ + SubframeType.c \ + SgNBSecurityKey.c \ + SgNBtoMeNBContainer.c \ + SRBType.c \ + SCGConfigurationQuery.c \ + SULInformation.c \ + SupportedSULFreqBandItem.c \ + TABasedMDT.c \ + TAC.c \ + TAIBasedMDT.c \ + TAIListforMDT.c \ + TAI-Item.c \ + TAListforMDT.c \ + TABasedQMC.c \ + TAListforQMC.c \ + TAIBasedQMC.c \ + TAIListforQMC.c \ + TargetCellInUTRAN.c \ + TargeteNBtoSource-eNBTransparentContainer.c \ + TDD-Info.c \ + Threshold-RSRP.c \ + Threshold-RSRQ.c \ + TimeToWait.c \ + Time-UE-StayedInCell.c \ + Time-UE-StayedInCell-EnhancedGranularity.c \ + TraceActivation.c \ + TraceCollectionEntityIPAddress.c \ + TraceDepth.c \ + Transmission-Bandwidth.c \ + TransportLayerAddress.c \ + TunnelInformation.c \ + TypeOfError.c \ + UEAggregateMaximumBitRate.c \ + UEAppLayerMeasConfig.c \ + UE-ContextKeptIndicator.c \ + UEID.c \ + UE-HistoryInformation.c \ + UE-HistoryInformationFromTheUE.c \ + UE-S1AP-ID.c \ + UE-X2AP-ID.c \ + UE-X2AP-ID-Extension.c \ + UE-RLF-Report-Container.c \ + UE-RLF-Report-Container-for-extended-bands.c \ + UESecurityCapabilities.c \ + UESidelinkAggregateMaximumBitRate.c \ + UEsToBeResetList.c \ + UEsToBeResetList-Item.c \ + ULandDLSharing.c \ + ULConfiguration.c \ + UL-UE-Configuration.c \ + UL-GBR-PRB-usage.c \ + UL-HighInterferenceIndicationInfo.c \ + UL-HighInterferenceIndicationInfo-Item.c \ + UL-HighInterferenceIndication.c \ + UL-InterferenceOverloadIndication.c \ + UL-InterferenceOverloadIndication-Item.c \ + UL-non-GBR-PRB-usage.c \ + ULOnlySharing.c \ + ULResourceBitmapULandDLSharing.c \ + ULResourcesULandDLSharing.c \ + UL-scheduling-PDCCH-CCE-usage.c \ + UL-Total-PRB-usage.c \ + UsableABSInformation.c \ + UsableABSInformationFDD.c \ + UsableABSInformationTDD.c \ + UserPlaneTrafficActivityReport.c \ + V2XServicesAuthorized.c \ + VehicleUE.c \ + PedestrianUE.c \ + WidebandCQI.c \ + WidebandCQICodeword1.c \ + WLANMeasurementConfiguration.c \ + WLANMeasConfigNameList.c \ + WLANMeasConfig.c \ + WLANName.c \ + WTID.c \ + WTID-Type1.c \ + WTID-Long-Type2.c \ + WT-UE-XwAP-ID.c \ + X2BenefitValue.c \ + Criticality.c \ + Presence.c \ + PrivateIE-ID.c \ + ProcedureCode.c \ + ProtocolIE-ID.c \ + TriggeringMessage.c \ + ProtocolIE-Container.c \ + ProtocolIE-Single-Container.c \ + ProtocolIE-Field.c \ + ProtocolIE-ContainerPair.c \ + ProtocolIE-FieldPair.c \ + ProtocolIE-ContainerList.c \ + ProtocolIE-ContainerPairList.c \ + ProtocolExtensionContainer.c \ + ProtocolExtensionField.c \ + PrivateIE-Container.c \ + PrivateIE-Field.c \ + E2SM-gNB-X2-eventTriggerDefinition.c \ + E2SM-gNB-X2-actionDefinition.c \ + E2SM-gNB-X2-indicationHeader.c \ + E2SM-gNB-X2-indicationMessage.c \ + E2SM-gNB-X2-callProcessID.c \ + E2SM-gNB-X2-controlHeader.c \ + E2SM-gNB-X2-controlMessage.c \ + ActionParameter-Item.c \ + ActionParameter-ID.c \ + ActionParameter-Value.c \ + CallProcess-ID.c \ + Interface-ID.c \ + InterfaceDirection.c \ + InterfaceMessage.c \ + InterfaceMessageType.c \ + TypeOfMessage.c \ + InterfaceProtocolIE-Item.c \ + InterfaceProtocolIE-ID.c \ + InterfaceProtocolIE-Test.c \ + InterfaceProtocolIE-Value.c \ + Style-ID.c \ + TimeStamp.c + +ASN_MODULE_HDRS= \ + E2AP-PDU.h \ + InitiatingMessage.h \ + SuccessfulOutcome.h \ + UnsuccessfulOutcome.h \ + RICsubscriptionRequest.h \ + RICsubscription.h \ + RICactions-ToBeSetup-List.h \ + RICaction-ToBeSetup-Item.h \ + RICsubscriptionResponse.h \ + RICaction-Admitted-List.h \ + RICaction-Admitted-Item.h \ + RICaction-NotAdmitted-List.h \ + RICaction-NotAdmitted-Item.h \ + RICsubscriptionFailure.h \ + RICsubscriptionDeleteRequest.h \ + RICsubscriptionDeleteResponse.h \ + RICsubscriptionDeleteFailure.h \ + RICindication.h \ + RICcontrolRequest.h \ + RICcontrolAcknowledge.h \ + RICcontrolFailure.h \ + RICserviceUpdate.h \ + RANfunctions-List.h \ + RANfunction-Item.h \ + RANfunctionsID-List.h \ + RANfunctionID-Item.h \ + RICserviceUpdateAcknowledge.h \ + RANfunctionsIDcause-List.h \ + RANfunctionIDcause-Item.h \ + RICserviceUpdateFailure.h \ + RICserviceQuery.h \ + CauseRIC.h \ + RANfunctionDefinition.h \ + RANfunctionID.h \ + RICactionDefinition.h \ + RICactionID.h \ + RICactionType.h \ + RICcallProcessID.h \ + RICcause.h \ + RICcontrolAckRequest.h \ + RICcontrolHeader.h \ + RICcontrolMessage.h \ + RICcontrolStatus.h \ + RICeventTriggerDefinition.h \ + RICindicationHeader.h \ + RICindicationMessage.h \ + RICindicationSN.h \ + RICindicationType.h \ + RICrequestID.h \ + RICsubsequentAction.h \ + RICsubsequentActionType.h \ + RICtimeToWait.h \ + X2AP-PDU.h \ + X2InitiatingMessage.h \ + X2SuccessfulOutcome.h \ + X2UnsuccessfulOutcome.h \ + HandoverRequest.h \ + UE-ContextInformation.h \ + E-RABs-ToBeSetup-List.h \ + E-RABs-ToBeSetup-Item.h \ + MobilityInformation.h \ + UE-ContextReferenceAtSeNB.h \ + UE-ContextReferenceAtWT.h \ + UE-ContextReferenceAtSgNB.h \ + HandoverRequestAcknowledge.h \ + E-RABs-Admitted-List.h \ + E-RABs-Admitted-Item.h \ + HandoverPreparationFailure.h \ + HandoverReport.h \ + SNStatusTransfer.h \ + E-RABs-SubjectToStatusTransfer-List.h \ + E-RABs-SubjectToStatusTransfer-Item.h \ + UEContextRelease.h \ + HandoverCancel.h \ + ErrorIndication.h \ + ResetRequest.h \ + ResetResponse.h \ + X2SetupRequest.h \ + X2SetupResponse.h \ + X2SetupFailure.h \ + LoadInformation.h \ + CellInformation-List.h \ + CellInformation-Item.h \ + ENBConfigurationUpdate.h \ + ServedCellsToModify.h \ + ServedCellsToModify-Item.h \ + Old-ECGIs.h \ + ENBConfigurationUpdateAcknowledge.h \ + ENBConfigurationUpdateFailure.h \ + ResourceStatusRequest.h \ + CellToReport-List.h \ + CellToReport-Item.h \ + ReportingPeriodicity.h \ + PartialSuccessIndicator.h \ + ResourceStatusResponse.h \ + MeasurementInitiationResult-List.h \ + MeasurementInitiationResult-Item.h \ + MeasurementFailureCause-List.h \ + MeasurementFailureCause-Item.h \ + ResourceStatusFailure.h \ + CompleteFailureCauseInformation-List.h \ + CompleteFailureCauseInformation-Item.h \ + ResourceStatusUpdate.h \ + CellMeasurementResult-List.h \ + CellMeasurementResult-Item.h \ + PrivateMessage.h \ + MobilityChangeRequest.h \ + MobilityChangeAcknowledge.h \ + MobilityChangeFailure.h \ + RLFIndication.h \ + CellActivationRequest.h \ + ServedCellsToActivate.h \ + ServedCellsToActivate-Item.h \ + CellActivationResponse.h \ + ActivatedCellList.h \ + ActivatedCellList-Item.h \ + CellActivationFailure.h \ + X2Release.h \ + X2APMessageTransfer.h \ + RNL-Header.h \ + X2AP-Message.h \ + SeNBAdditionRequest.h \ + E-RABs-ToBeAdded-List.h \ + E-RABs-ToBeAdded-Item.h \ + E-RABs-ToBeAdded-Item-SCG-Bearer.h \ + E-RABs-ToBeAdded-Item-Split-Bearer.h \ + SeNBAdditionRequestAcknowledge.h \ + E-RABs-Admitted-ToBeAdded-List.h \ + E-RABs-Admitted-ToBeAdded-Item.h \ + E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer.h \ + E-RABs-Admitted-ToBeAdded-Item-Split-Bearer.h \ + SeNBAdditionRequestReject.h \ + SeNBReconfigurationComplete.h \ + ResponseInformationSeNBReconfComp.h \ + ResponseInformationSeNBReconfComp-SuccessItem.h \ + ResponseInformationSeNBReconfComp-RejectByMeNBItem.h \ + SeNBModificationRequest.h \ + UE-ContextInformationSeNBModReq.h \ + E-RABs-ToBeAdded-List-ModReq.h \ + E-RABs-ToBeAdded-ModReqItem.h \ + E-RABs-ToBeAdded-ModReqItem-SCG-Bearer.h \ + E-RABs-ToBeAdded-ModReqItem-Split-Bearer.h \ + E-RABs-ToBeModified-List-ModReq.h \ + E-RABs-ToBeModified-ModReqItem.h \ + E-RABs-ToBeModified-ModReqItem-SCG-Bearer.h \ + E-RABs-ToBeModified-ModReqItem-Split-Bearer.h \ + E-RABs-ToBeReleased-List-ModReq.h \ + E-RABs-ToBeReleased-ModReqItem.h \ + E-RABs-ToBeReleased-ModReqItem-SCG-Bearer.h \ + E-RABs-ToBeReleased-ModReqItem-Split-Bearer.h \ + SeNBModificationRequestAcknowledge.h \ + E-RABs-Admitted-ToBeAdded-ModAckList.h \ + E-RABs-Admitted-ToBeAdded-ModAckItem.h \ + E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer.h \ + E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer.h \ + E-RABs-Admitted-ToBeModified-ModAckList.h \ + E-RABs-Admitted-ToBeModified-ModAckItem.h \ + E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer.h \ + E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer.h \ + E-RABs-Admitted-ToBeReleased-ModAckList.h \ + E-RABs-Admitted-ToReleased-ModAckItem.h \ + E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer.h \ + E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer.h \ + SeNBModificationRequestReject.h \ + SeNBModificationRequired.h \ + E-RABs-ToBeReleased-ModReqd.h \ + E-RABs-ToBeReleased-ModReqdItem.h \ + SeNBModificationConfirm.h \ + SeNBModificationRefuse.h \ + SeNBReleaseRequest.h \ + E-RABs-ToBeReleased-List-RelReq.h \ + E-RABs-ToBeReleased-RelReqItem.h \ + E-RABs-ToBeReleased-RelReqItem-SCG-Bearer.h \ + E-RABs-ToBeReleased-RelReqItem-Split-Bearer.h \ + SeNBReleaseRequired.h \ + SeNBReleaseConfirm.h \ + E-RABs-ToBeReleased-List-RelConf.h \ + E-RABs-ToBeReleased-RelConfItem.h \ + E-RABs-ToBeReleased-RelConfItem-SCG-Bearer.h \ + E-RABs-ToBeReleased-RelConfItem-Split-Bearer.h \ + SeNBCounterCheckRequest.h \ + E-RABs-SubjectToCounterCheck-List.h \ + E-RABs-SubjectToCounterCheckItem.h \ + X2RemovalRequest.h \ + X2RemovalResponse.h \ + X2RemovalFailure.h \ + RetrieveUEContextRequest.h \ + RetrieveUEContextResponse.h \ + UE-ContextInformationRetrieve.h \ + E-RABs-ToBeSetup-ListRetrieve.h \ + E-RABs-ToBeSetupRetrieve-Item.h \ + RetrieveUEContextFailure.h \ + SgNBAdditionRequest.h \ + E-RABs-ToBeAdded-SgNBAddReqList.h \ + E-RABs-ToBeAdded-SgNBAddReq-Item.h \ + E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent.h \ + E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent.h \ + SgNBAdditionRequestAcknowledge.h \ + E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.h \ + E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.h \ + E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent.h \ + E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent.h \ + SgNBAdditionRequestReject.h \ + SgNBReconfigurationComplete.h \ + ResponseInformationSgNBReconfComp.h \ + ResponseInformationSgNBReconfComp-SuccessItem.h \ + ResponseInformationSgNBReconfComp-RejectByMeNBItem.h \ + SgNBModificationRequest.h \ + UE-ContextInformation-SgNBModReq.h \ + E-RABs-ToBeAdded-SgNBModReq-List.h \ + E-RABs-ToBeAdded-SgNBModReq-Item.h \ + E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent.h \ + E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent.h \ + E-RABs-ToBeModified-SgNBModReq-List.h \ + E-RABs-ToBeModified-SgNBModReq-Item.h \ + E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent.h \ + E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent.h \ + E-RABs-ToBeReleased-SgNBModReq-List.h \ + E-RABs-ToBeReleased-SgNBModReq-Item.h \ + E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent.h \ + E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent.h \ + SgNBModificationRequestAcknowledge.h \ + E-RABs-Admitted-ToBeAdded-SgNBModAckList.h \ + E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.h \ + E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent.h \ + E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent.h \ + E-RABs-Admitted-ToBeModified-SgNBModAckList.h \ + E-RABs-Admitted-ToBeModified-SgNBModAck-Item.h \ + E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent.h \ + E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent.h \ + E-RABs-Admitted-ToBeReleased-SgNBModAckList.h \ + E-RABs-Admitted-ToReleased-SgNBModAck-Item.h \ + E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent.h \ + E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent.h \ + SgNBModificationRequestReject.h \ + SgNBModificationRequired.h \ + E-RABs-ToBeReleased-SgNBModReqdList.h \ + E-RABs-ToBeReleased-SgNBModReqd-Item.h \ + E-RABs-ToBeModified-SgNBModReqdList.h \ + E-RABs-ToBeModified-SgNBModReqd-Item.h \ + E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent.h \ + E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent.h \ + SgNBModificationConfirm.h \ + E-RABs-AdmittedToBeModified-SgNBModConfList.h \ + E-RABs-AdmittedToBeModified-SgNBModConf-Item.h \ + E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent.h \ + E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent.h \ + SgNBModificationRefuse.h \ + SgNBReleaseRequest.h \ + E-RABs-ToBeReleased-SgNBRelReqList.h \ + E-RABs-ToBeReleased-SgNBRelReq-Item.h \ + E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent.h \ + E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent.h \ + SgNBReleaseRequestAcknowledge.h \ + E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.h \ + E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.h \ + SgNBReleaseRequestReject.h \ + SgNBReleaseRequired.h \ + E-RABs-ToBeReleased-SgNBRelReqdList.h \ + E-RABs-ToBeReleased-SgNBRelReqd-Item.h \ + SgNBReleaseConfirm.h \ + E-RABs-ToBeReleased-SgNBRelConfList.h \ + E-RABs-ToBeReleased-SgNBRelConf-Item.h \ + E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent.h \ + E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent.h \ + SgNBCounterCheckRequest.h \ + E-RABs-SubjectToSgNBCounterCheck-List.h \ + E-RABs-SubjectToSgNBCounterCheck-Item.h \ + SgNBChangeRequired.h \ + SgNBChangeConfirm.h \ + E-RABs-ToBeReleased-SgNBChaConfList.h \ + E-RABs-ToBeReleased-SgNBChaConf-Item.h \ + E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent.h \ + E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent.h \ + RRCTransfer.h \ + SgNBChangeRefuse.h \ + ENDCX2SetupRequest.h \ + InitiatingNodeType-EndcX2Setup.h \ + ServedEUTRAcellsENDCX2ManagementList.h \ + ServedNRcellsENDCX2ManagementList.h \ + ServedNRCell-Information.h \ + FDD-InfoServedNRCell-Information.h \ + FDD-InfoNeighbourServedNRCell-Information.h \ + TDD-InfoServedNRCell-Information.h \ + TDD-InfoNeighbourServedNRCell-Information.h \ + NRNeighbour-Information.h \ + CellAssistanceInformation.h \ + Limited-list.h \ + ENDCX2SetupResponse.h \ + RespondingNodeType-EndcX2Setup.h \ + ENDCX2SetupFailure.h \ + ENDCConfigurationUpdate.h \ + InitiatingNodeType-EndcConfigUpdate.h \ + ServedEUTRAcellsToModifyListENDCConfUpd.h \ + ServedEUTRAcellsToDeleteListENDCConfUpd.h \ + ServedNRcellsToModifyENDCConfUpdList.h \ + ServedNRCellsToModify-Item.h \ + ServedNRcellsToDeleteENDCConfUpdList.h \ + ENDCConfigurationUpdateAcknowledge.h \ + RespondingNodeType-EndcConfigUpdate.h \ + ENDCConfigurationUpdateFailure.h \ + ENDCCellActivationRequest.h \ + ServedNRCellsToActivate.h \ + ServedNRCellsToActivate-Item.h \ + ENDCCellActivationResponse.h \ + ActivatedNRCellList.h \ + ActivatedNRCellList-Item.h \ + ENDCCellActivationFailure.h \ + SecondaryRATDataUsageReport.h \ + SgNBActivityNotification.h \ + ENDCPartialResetRequired.h \ + ENDCPartialResetConfirm.h \ + EUTRANRCellResourceCoordinationRequest.h \ + InitiatingNodeType-EutranrCellResourceCoordination.h \ + ListofEUTRACellsinEUTRACoordinationReq.h \ + ListofEUTRACellsinNRCoordinationReq.h \ + ListofNRCellsinNRCoordinationReq.h \ + EUTRANRCellResourceCoordinationResponse.h \ + RespondingNodeType-EutranrCellResourceCoordination.h \ + ListofEUTRACellsinEUTRACoordinationResp.h \ + ListofNRCellsinNRCoordinationResp.h \ + ENDCX2RemovalRequest.h \ + InitiatingNodeType-EndcX2Removal.h \ + ENDCX2RemovalResponse.h \ + RespondingNodeType-EndcX2Removal.h \ + ENDCX2RemovalFailure.h \ + DataForwardingAddressIndication.h \ + E-RABs-DataForwardingAddress-List.h \ + E-RABs-DataForwardingAddress-Item.h \ + GNBStatusIndication.h \ + ABSInformation.h \ + ABSInformationFDD.h \ + ABSInformationTDD.h \ + ABS-Status.h \ + ActivationID.h \ + AdditionalSpecialSubframe-Info.h \ + AdditionalSpecialSubframePatterns.h \ + AdditionalSpecialSubframeExtension-Info.h \ + AdditionalSpecialSubframePatternsExtension.h \ + AerialUEsubscriptionInformation.h \ + AllocationAndRetentionPriority.h \ + AreaScopeOfMDT.h \ + AreaScopeOfQMC.h \ + AS-SecurityInformation.h \ + BandwidthReducedSI.h \ + BearerType.h \ + BenefitMetric.h \ + BitRate.h \ + BroadcastPLMNs-Item.h \ + BluetoothMeasurementConfiguration.h \ + BluetoothMeasConfigNameList.h \ + BluetoothMeasConfig.h \ + BluetoothName.h \ + CapacityValue.h \ + Cause.h \ + CauseMisc.h \ + CauseProtocol.h \ + CauseRadioNetwork.h \ + CauseTransport.h \ + CellBasedMDT.h \ + CellBasedQMC.h \ + CellCapacityClassValue.h \ + CellDeploymentStatusIndicator.h \ + CellIdListforMDT.h \ + CellIdListforQMC.h \ + CellReplacingInfo.h \ + CellReportingIndicator.h \ + Cell-Size.h \ + CellType.h \ + CNTypeRestrictions.h \ + CNTypeRestrictionsItem.h \ + CoMPHypothesisSet.h \ + CoMPHypothesisSetItem.h \ + CoMPInformation.h \ + CoMPInformationItem.h \ + CoMPInformationStartTime.h \ + CompositeAvailableCapacity.h \ + CompositeAvailableCapacityGroup.h \ + Correlation-ID.h \ + COUNTvalue.h \ + COUNTValueExtended.h \ + COUNTvaluePDCP-SNlength18.h \ + CoverageModificationList.h \ + CoverageModification-Item.h \ + CriticalityDiagnostics.h \ + CriticalityDiagnostics-IE-List.h \ + CRNTI.h \ + CSGMembershipStatus.h \ + CSG-Id.h \ + CSIReportList.h \ + CSIReportPerCSIProcess.h \ + CSIReportPerCSIProcessItem.h \ + CyclicPrefixDL.h \ + CyclicPrefixUL.h \ + DataTrafficResources.h \ + DataTrafficResourceIndication.h \ + DeactivationIndication.h \ + DeliveryStatus.h \ + DL-ABS-status.h \ + DL-Forwarding.h \ + DL-GBR-PRB-usage.h \ + DL-non-GBR-PRB-usage.h \ + DLResourceBitmapULandDLSharing.h \ + DLResourcesULandDLSharing.h \ + DL-scheduling-PDCCH-CCE-usage.h \ + DL-Total-PRB-usage.h \ + DRB-ID.h \ + DuplicationActivation.h \ + DynamicDLTransmissionInformation.h \ + DynamicNAICSInformation.h \ + EARFCN.h \ + EARFCNExtension.h \ + ECGI.h \ + EnhancedRNTP.h \ + EnhancedRNTPStartTime.h \ + ENB-ID.h \ + EncryptionAlgorithms.h \ + EN-DC-ResourceConfiguration.h \ + EPLMNs.h \ + ERABActivityNotifyItemList.h \ + ERABActivityNotifyItem.h \ + E-RAB-ID.h \ + E-RAB-Level-QoS-Parameters.h \ + E-RAB-List.h \ + E-RAB-Item.h \ + E-RABUsageReportList.h \ + E-RABUsageReport-Item.h \ + EUTRA-Mode-Info.h \ + EUTRANCellIdentifier.h \ + EUTRANTraceID.h \ + EventType.h \ + ExpectedUEBehaviour.h \ + ExpectedUEActivityBehaviour.h \ + ExpectedActivityPeriod.h \ + ExpectedIdlePeriod.h \ + ExpectedHOInterval.h \ + ExtendedULInterferenceOverloadInfo.h \ + ExtendedBitRate.h \ + FDD-Info.h \ + ForbiddenInterRATs.h \ + ForbiddenTAs.h \ + ForbiddenTAs-Item.h \ + ForbiddenTACs.h \ + ForbiddenLAs.h \ + ForbiddenLAs-Item.h \ + ForbiddenLACs.h \ + Fourframes.h \ + FreqBandIndicator.h \ + FreqBandIndicatorPriority.h \ + FreqBandNrItem.h \ + GBR-QosInformation.h \ + GlobalENB-ID.h \ + GlobalGNB-ID.h \ + GNBOverloadInformation.h \ + GTPtunnelEndpoint.h \ + GTP-TEI.h \ + GUGroupIDList.h \ + GU-Group-ID.h \ + GUMMEI.h \ + GNB-ID.h \ + HandoverReportType.h \ + HandoverRestrictionList.h \ + HFN.h \ + HFNModified.h \ + HFNforPDCP-SNlength18.h \ + HWLoadIndicator.h \ + IntegrityProtectionAlgorithms.h \ + InterfacesToTrace.h \ + InvokeIndication.h \ + Key-eNodeB-Star.h \ + LAC.h \ + LastVisitedCell-Item.h \ + LastVisitedEUTRANCellInformation.h \ + LastVisitedGERANCellInformation.h \ + LastVisitedNGRANCellInformation.h \ + LastVisitedUTRANCellInformation.h \ + LCID.h \ + LHN-ID.h \ + Links-to-log.h \ + LoadIndicator.h \ + LocationReportingInformation.h \ + M1PeriodicReporting.h \ + M1ReportingTrigger.h \ + M1ThresholdEventA2.h \ + M3Configuration.h \ + M3period.h \ + M4Configuration.h \ + M4period.h \ + M5Configuration.h \ + M5period.h \ + M6Configuration.h \ + M6report-interval.h \ + M6delay-threshold.h \ + M7Configuration.h \ + M7period.h \ + MakeBeforeBreakIndicator.h \ + ManagementBasedMDTallowed.h \ + Masked-IMEISV.h \ + MDT-Activation.h \ + MDT-Configuration.h \ + MDTPLMNList.h \ + MDT-Location-Info.h \ + Measurement-ID.h \ + MeasurementsToActivate.h \ + MeasurementThresholdA2.h \ + MeNBCoordinationAssistanceInformation.h \ + MeNBResourceCoordinationInformation.h \ + MeNBtoSeNBContainer.h \ + MME-Group-ID.h \ + MME-Code.h \ + MBMS-Service-Area-Identity-List.h \ + MBMS-Service-Area-Identity.h \ + MBSFN-Subframe-Infolist.h \ + MBSFN-Subframe-Info.h \ + MobilityParametersModificationRange.h \ + MobilityParametersInformation.h \ + MultibandInfoList.h \ + BandInfo.h \ + MeNBtoSgNBContainer.h \ + SplitSRBs.h \ + SplitSRB.h \ + UENRMeasurement.h \ + Neighbour-Information.h \ + NextHopChainingCount.h \ + NewDRBIDrequest.h \ + Number-of-Antennaports.h \ + NRFreqInfo.h \ + NRCellIdentifier.h \ + NRCGI.h \ + NRPCI.h \ + NRrestrictioninEPSasSecondaryRAT.h \ + NRrestrictionin5GS.h \ + NRencryptionAlgorithms.h \ + NRintegrityProtectionAlgorithms.h \ + NR-TxBW.h \ + NRNRB.h \ + NRSCS.h \ + NRS-NSSS-PowerOffset.h \ + FiveGS-TAC.h \ + NRUESecurityCapabilities.h \ + NSSS-NumOccasionDifferentPrecoder.h \ + OffsetOfNbiotChannelNumberToEARFCN.h \ + Oneframe.h \ + Packet-LossRate.h \ + PA-Values.h \ + PDCPChangeIndication.h \ + PDCP-SN.h \ + PDCP-SNExtended.h \ + PDCP-SNlength18.h \ + PDCPSnLength.h \ + PCI.h \ + PLMN-Identity.h \ + Port-Number.h \ + PRACH-Configuration.h \ + PLMNAreaBasedQMC.h \ + PLMNListforQMC.h \ + Pre-emptionCapability.h \ + Pre-emptionVulnerability.h \ + PriorityLevel.h \ + ProSeAuthorized.h \ + ProSeDirectDiscovery.h \ + ProSeDirectCommunication.h \ + ProSeUEtoNetworkRelaying.h \ + ProtectedEUTRAResourceIndication.h \ + ProtectedFootprintTimePattern.h \ + ProtectedResourceList.h \ + ProtectedResourceList-Item.h \ + QCI.h \ + RadioframeAllocationOffset.h \ + RadioframeAllocationPeriod.h \ + RadioResourceStatus.h \ + ReceiveStatusofULPDCPSDUs.h \ + ReceiveStatusOfULPDCPSDUsExtended.h \ + ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.h \ + Reestablishment-Indication.h \ + Registration-Request.h \ + RelativeNarrowbandTxPower.h \ + ReplacingCellsList.h \ + ReplacingCellsList-Item.h \ + ReportAmountMDT.h \ + ReportArea.h \ + ReportCharacteristics.h \ + ReportingPeriodicityCSIR.h \ + ReportingPeriodicityRSRPMR.h \ + ReportIntervalMDT.h \ + ReservedSubframePattern.h \ + ResourceType.h \ + ResumeID.h \ + RLCMode.h \ + RLC-Status.h \ + RNTP-Threshold.h \ + RRC-Config-Ind.h \ + RRC-Context.h \ + RRCConnReestabIndicator.h \ + RRCConnSetupIndicator.h \ + RSRPMeasurementResult.h \ + RSRPMRList.h \ + RRCContainer.h \ + S1TNLLoadIndicator.h \ + SCGChangeIndication.h \ + SecondaryRATUsageReportList.h \ + SecondaryRATUsageReport-Item.h \ + SeNBSecurityKey.h \ + SeNBtoMeNBContainer.h \ + ServedCells.h \ + ServedCell-Information.h \ + ServiceType.h \ + SgNBCoordinationAssistanceInformation.h \ + SgNBResourceCoordinationInformation.h \ + SgNB-UE-X2AP-ID.h \ + SIPTOBearerDeactivationIndication.h \ + SharedResourceType.h \ + ShortMAC-I.h \ + SGNB-Addition-Trigger-Ind.h \ + SourceOfUEActivityBehaviourInformation.h \ + SpecialSubframe-Info.h \ + SpecialSubframePatterns.h \ + SpectrumSharingGroupID.h \ + SubbandCQI.h \ + Subscription-Based-UE-DifferentiationInfo.h \ + ScheduledCommunicationTime.h \ + SRVCCOperationPossible.h \ + SubbandCQICodeword0.h \ + SubbandCQICodeword1.h \ + SubbandCQIList.h \ + SubbandCQIItem.h \ + SubbandSize.h \ + SubscriberProfileIDforRFP.h \ + SubframeAllocation.h \ + SubframeAssignment.h \ + SubframeType.h \ + SgNBSecurityKey.h \ + SgNBtoMeNBContainer.h \ + SRBType.h \ + SCGConfigurationQuery.h \ + SULInformation.h \ + SupportedSULFreqBandItem.h \ + TABasedMDT.h \ + TAC.h \ + TAIBasedMDT.h \ + TAIListforMDT.h \ + TAI-Item.h \ + TAListforMDT.h \ + TABasedQMC.h \ + TAListforQMC.h \ + TAIBasedQMC.h \ + TAIListforQMC.h \ + TargetCellInUTRAN.h \ + TargeteNBtoSource-eNBTransparentContainer.h \ + TDD-Info.h \ + Threshold-RSRP.h \ + Threshold-RSRQ.h \ + TimeToWait.h \ + Time-UE-StayedInCell.h \ + Time-UE-StayedInCell-EnhancedGranularity.h \ + TraceActivation.h \ + TraceCollectionEntityIPAddress.h \ + TraceDepth.h \ + Transmission-Bandwidth.h \ + TransportLayerAddress.h \ + TunnelInformation.h \ + TypeOfError.h \ + UEAggregateMaximumBitRate.h \ + UEAppLayerMeasConfig.h \ + UE-ContextKeptIndicator.h \ + UEID.h \ + UE-HistoryInformation.h \ + UE-HistoryInformationFromTheUE.h \ + UE-S1AP-ID.h \ + UE-X2AP-ID.h \ + UE-X2AP-ID-Extension.h \ + UE-RLF-Report-Container.h \ + UE-RLF-Report-Container-for-extended-bands.h \ + UESecurityCapabilities.h \ + UESidelinkAggregateMaximumBitRate.h \ + UEsToBeResetList.h \ + UEsToBeResetList-Item.h \ + ULandDLSharing.h \ + ULConfiguration.h \ + UL-UE-Configuration.h \ + UL-GBR-PRB-usage.h \ + UL-HighInterferenceIndicationInfo.h \ + UL-HighInterferenceIndicationInfo-Item.h \ + UL-HighInterferenceIndication.h \ + UL-InterferenceOverloadIndication.h \ + UL-InterferenceOverloadIndication-Item.h \ + UL-non-GBR-PRB-usage.h \ + ULOnlySharing.h \ + ULResourceBitmapULandDLSharing.h \ + ULResourcesULandDLSharing.h \ + UL-scheduling-PDCCH-CCE-usage.h \ + UL-Total-PRB-usage.h \ + UsableABSInformation.h \ + UsableABSInformationFDD.h \ + UsableABSInformationTDD.h \ + UserPlaneTrafficActivityReport.h \ + V2XServicesAuthorized.h \ + VehicleUE.h \ + PedestrianUE.h \ + WidebandCQI.h \ + WidebandCQICodeword1.h \ + WLANMeasurementConfiguration.h \ + WLANMeasConfigNameList.h \ + WLANMeasConfig.h \ + WLANName.h \ + WTID.h \ + WTID-Type1.h \ + WTID-Long-Type2.h \ + WT-UE-XwAP-ID.h \ + X2BenefitValue.h \ + Criticality.h \ + Presence.h \ + PrivateIE-ID.h \ + ProcedureCode.h \ + ProtocolIE-ID.h \ + TriggeringMessage.h \ + ProtocolIE-Container.h \ + ProtocolIE-Single-Container.h \ + ProtocolIE-Field.h \ + ProtocolIE-ContainerPair.h \ + ProtocolIE-FieldPair.h \ + ProtocolIE-ContainerList.h \ + ProtocolIE-ContainerPairList.h \ + ProtocolExtensionContainer.h \ + ProtocolExtensionField.h \ + PrivateIE-Container.h \ + PrivateIE-Field.h \ + E2SM-gNB-X2-eventTriggerDefinition.h \ + E2SM-gNB-X2-actionDefinition.h \ + E2SM-gNB-X2-indicationHeader.h \ + E2SM-gNB-X2-indicationMessage.h \ + E2SM-gNB-X2-callProcessID.h \ + E2SM-gNB-X2-controlHeader.h \ + E2SM-gNB-X2-controlMessage.h \ + ActionParameter-Item.h \ + ActionParameter-ID.h \ + ActionParameter-Value.h \ + CallProcess-ID.h \ + Interface-ID.h \ + InterfaceDirection.h \ + InterfaceMessage.h \ + InterfaceMessageType.h \ + TypeOfMessage.h \ + InterfaceProtocolIE-Item.h \ + InterfaceProtocolIE-ID.h \ + InterfaceProtocolIE-Test.h \ + InterfaceProtocolIE-Value.h \ + Style-ID.h \ + TimeStamp.h + +ASN_MODULE_HDRS+=ANY.h +ASN_MODULE_SRCS+=ANY.c +ASN_MODULE_HDRS+=OCTET_STRING.h +ASN_MODULE_HDRS+=OPEN_TYPE.h +ASN_MODULE_SRCS+=OPEN_TYPE.c +ASN_MODULE_HDRS+=constr_CHOICE.h +ASN_MODULE_HDRS+=BOOLEAN.h +ASN_MODULE_SRCS+=BOOLEAN.c +ASN_MODULE_HDRS+=INTEGER.h +ASN_MODULE_SRCS+=INTEGER.c +ASN_MODULE_HDRS+=NULL.h +ASN_MODULE_SRCS+=NULL.c +ASN_MODULE_HDRS+=NativeEnumerated.h +ASN_MODULE_SRCS+=NativeEnumerated.c +ASN_MODULE_HDRS+=NativeInteger.h +ASN_MODULE_SRCS+=NativeInteger.c +ASN_MODULE_HDRS+=OBJECT_IDENTIFIER.h +ASN_MODULE_SRCS+=OBJECT_IDENTIFIER.c +ASN_MODULE_HDRS+=PrintableString.h +ASN_MODULE_SRCS+=PrintableString.c +ASN_MODULE_HDRS+=asn_SEQUENCE_OF.h +ASN_MODULE_SRCS+=asn_SEQUENCE_OF.c +ASN_MODULE_HDRS+=asn_SET_OF.h +ASN_MODULE_SRCS+=asn_SET_OF.c +ASN_MODULE_SRCS+=constr_CHOICE.c +ASN_MODULE_HDRS+=constr_SEQUENCE.h +ASN_MODULE_SRCS+=constr_SEQUENCE.c +ASN_MODULE_HDRS+=constr_SEQUENCE_OF.h +ASN_MODULE_SRCS+=constr_SEQUENCE_OF.c +ASN_MODULE_HDRS+=constr_SET_OF.h +ASN_MODULE_SRCS+=constr_SET_OF.c +ASN_MODULE_HDRS+=asn_application.h +ASN_MODULE_SRCS+=asn_application.c +ASN_MODULE_HDRS+=asn_ioc.h +ASN_MODULE_HDRS+=asn_system.h +ASN_MODULE_HDRS+=asn_codecs.h +ASN_MODULE_HDRS+=asn_internal.h +ASN_MODULE_SRCS+=asn_internal.c +ASN_MODULE_HDRS+=asn_random_fill.h +ASN_MODULE_SRCS+=asn_random_fill.c +ASN_MODULE_HDRS+=asn_bit_data.h +ASN_MODULE_SRCS+=asn_bit_data.c +ASN_MODULE_SRCS+=OCTET_STRING.c +ASN_MODULE_HDRS+=BIT_STRING.h +ASN_MODULE_SRCS+=BIT_STRING.c +ASN_MODULE_SRCS+=asn_codecs_prim.c +ASN_MODULE_HDRS+=asn_codecs_prim.h +ASN_MODULE_HDRS+=ber_tlv_length.h +ASN_MODULE_SRCS+=ber_tlv_length.c +ASN_MODULE_HDRS+=ber_tlv_tag.h +ASN_MODULE_SRCS+=ber_tlv_tag.c +ASN_MODULE_HDRS+=ber_decoder.h +ASN_MODULE_SRCS+=ber_decoder.c +ASN_MODULE_HDRS+=der_encoder.h +ASN_MODULE_SRCS+=der_encoder.c +ASN_MODULE_HDRS+=constr_TYPE.h +ASN_MODULE_SRCS+=constr_TYPE.c +ASN_MODULE_HDRS+=constraints.h +ASN_MODULE_SRCS+=constraints.c +ASN_MODULE_HDRS+=xer_support.h +ASN_MODULE_SRCS+=xer_support.c +ASN_MODULE_HDRS+=xer_decoder.h +ASN_MODULE_SRCS+=xer_decoder.c +ASN_MODULE_HDRS+=xer_encoder.h +ASN_MODULE_SRCS+=xer_encoder.c +ASN_MODULE_HDRS+=per_support.h +ASN_MODULE_SRCS+=per_support.c +ASN_MODULE_HDRS+=per_decoder.h +ASN_MODULE_SRCS+=per_decoder.c +ASN_MODULE_HDRS+=per_encoder.h +ASN_MODULE_SRCS+=per_encoder.c +ASN_MODULE_HDRS+=per_opentype.h +ASN_MODULE_SRCS+=per_opentype.c + +ASN_MODULE_CFLAGS=-DASN_DISABLE_OER_SUPPORT + +lib_LTLIBRARIES+=libasncodec.la +libasncodec_la_SOURCES=$(ASN_MODULE_SRCS) $(ASN_MODULE_HDRS) +libasncodec_la_CPPFLAGS=-I$(top_srcdir)/ +libasncodec_la_CFLAGS=$(ASN_MODULE_CFLAGS) +libasncodec_la_LDFLAGS=-lm diff --git a/asn1c_defs/all-defs/ManagementBasedMDTallowed.c b/asn1c_defs/all-defs/ManagementBasedMDTallowed.c new file mode 100644 index 0000000..16d6709 --- /dev/null +++ b/asn1c_defs/all-defs/ManagementBasedMDTallowed.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ManagementBasedMDTallowed.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_ManagementBasedMDTallowed_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ManagementBasedMDTallowed_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/ManagementBasedMDTallowed.h b/asn1c_defs/all-defs/ManagementBasedMDTallowed.h new file mode 100644 index 0000000..e3bc749 --- /dev/null +++ b/asn1c_defs/all-defs/ManagementBasedMDTallowed.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ManagementBasedMDTallowed_H_ +#define _ManagementBasedMDTallowed_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/Masked-IMEISV.c b/asn1c_defs/all-defs/Masked-IMEISV.c new file mode 100644 index 0000000..b0500e0 --- /dev/null +++ b/asn1c_defs/all-defs/Masked-IMEISV.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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 */ + { 0, &asn_PER_type_Masked_IMEISV_constr_1, Masked_IMEISV_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/Masked-IMEISV.h b/asn1c_defs/all-defs/Masked-IMEISV.h new file mode 100644 index 0000000..d33b9b1 --- /dev/null +++ b/asn1c_defs/all-defs/Masked-IMEISV.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _Masked_IMEISV_H_ +#define _Masked_IMEISV_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/MeNBCoordinationAssistanceInformation.c b/asn1c_defs/all-defs/MeNBCoordinationAssistanceInformation.c new file mode 100644 index 0000000..18c3c49 --- /dev/null +++ b/asn1c_defs/all-defs/MeNBCoordinationAssistanceInformation.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "MeNBCoordinationAssistanceInformation.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_MeNBCoordinationAssistanceInformation_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_MeNBCoordinationAssistanceInformation_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/MeNBCoordinationAssistanceInformation.h b/asn1c_defs/all-defs/MeNBCoordinationAssistanceInformation.h new file mode 100644 index 0000000..3ed2122 --- /dev/null +++ b/asn1c_defs/all-defs/MeNBCoordinationAssistanceInformation.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _MeNBCoordinationAssistanceInformation_H_ +#define _MeNBCoordinationAssistanceInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/MeNBResourceCoordinationInformation.c b/asn1c_defs/all-defs/MeNBResourceCoordinationInformation.c new file mode 100644 index 0000000..f20805e --- /dev/null +++ b/asn1c_defs/all-defs/MeNBResourceCoordinationInformation.c @@ -0,0 +1,155 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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, + { 0, &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, + { 0, &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_8231P167, + 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/asn1c_defs/all-defs/MeNBResourceCoordinationInformation.h b/asn1c_defs/all-defs/MeNBResourceCoordinationInformation.h new file mode 100644 index 0000000..bdcab30 --- /dev/null +++ b/asn1c_defs/all-defs/MeNBResourceCoordinationInformation.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _MeNBResourceCoordinationInformation_H_ +#define _MeNBResourceCoordinationInformation_H_ + + +#include + +/* Including external dependencies */ +#include "ECGI.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/MeNBtoSeNBContainer.c b/asn1c_defs/all-defs/MeNBtoSeNBContainer.c new file mode 100644 index 0000000..c586593 --- /dev/null +++ b/asn1c_defs/all-defs/MeNBtoSeNBContainer.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/MeNBtoSeNBContainer.h b/asn1c_defs/all-defs/MeNBtoSeNBContainer.h new file mode 100644 index 0000000..d4239d1 --- /dev/null +++ b/asn1c_defs/all-defs/MeNBtoSeNBContainer.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _MeNBtoSeNBContainer_H_ +#define _MeNBtoSeNBContainer_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/MeNBtoSgNBContainer.c b/asn1c_defs/all-defs/MeNBtoSgNBContainer.c new file mode 100644 index 0000000..4c7186a --- /dev/null +++ b/asn1c_defs/all-defs/MeNBtoSgNBContainer.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/MeNBtoSgNBContainer.h b/asn1c_defs/all-defs/MeNBtoSgNBContainer.h new file mode 100644 index 0000000..d3ca19d --- /dev/null +++ b/asn1c_defs/all-defs/MeNBtoSgNBContainer.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _MeNBtoSgNBContainer_H_ +#define _MeNBtoSgNBContainer_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/Measurement-ID.c b/asn1c_defs/all-defs/Measurement-ID.c new file mode 100644 index 0000000..0ea9b83 --- /dev/null +++ b/asn1c_defs/all-defs/Measurement-ID.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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 */ + { 0, &asn_PER_type_Measurement_ID_constr_1, Measurement_ID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/Measurement-ID.h b/asn1c_defs/all-defs/Measurement-ID.h new file mode 100644 index 0000000..c26a48b --- /dev/null +++ b/asn1c_defs/all-defs/Measurement-ID.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _Measurement_ID_H_ +#define _Measurement_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/MeasurementFailureCause-Item.c b/asn1c_defs/all-defs/MeasurementFailureCause-Item.c new file mode 100644 index 0000000..89dbced --- /dev/null +++ b/asn1c_defs/all-defs/MeasurementFailureCause-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P11, + 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/asn1c_defs/all-defs/MeasurementFailureCause-Item.h b/asn1c_defs/all-defs/MeasurementFailureCause-Item.h new file mode 100644 index 0000000..731ca3a --- /dev/null +++ b/asn1c_defs/all-defs/MeasurementFailureCause-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _MeasurementFailureCause_Item_H_ +#define _MeasurementFailureCause_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ReportCharacteristics.h" +#include "Cause.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/MeasurementFailureCause-List.c b/asn1c_defs/all-defs/MeasurementFailureCause-List.c new file mode 100644 index 0000000..ef29d8b --- /dev/null +++ b/asn1c_defs/all-defs/MeasurementFailureCause-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "MeasurementFailureCause-List.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P12, + 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 */ + { 0, &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/asn1c_defs/all-defs/MeasurementFailureCause-List.h b/asn1c_defs/all-defs/MeasurementFailureCause-List.h new file mode 100644 index 0000000..4853d59 --- /dev/null +++ b/asn1c_defs/all-defs/MeasurementFailureCause-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _MeasurementFailureCause_List_H_ +#define _MeasurementFailureCause_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/MeasurementInitiationResult-Item.c b/asn1c_defs/all-defs/MeasurementInitiationResult-Item.c new file mode 100644 index 0000000..fa972ab --- /dev/null +++ b/asn1c_defs/all-defs/MeasurementInitiationResult-Item.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P10, + 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/asn1c_defs/all-defs/MeasurementInitiationResult-Item.h b/asn1c_defs/all-defs/MeasurementInitiationResult-Item.h new file mode 100644 index 0000000..9462243 --- /dev/null +++ b/asn1c_defs/all-defs/MeasurementInitiationResult-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _MeasurementInitiationResult_Item_H_ +#define _MeasurementInitiationResult_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ECGI.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/MeasurementInitiationResult-List.c b/asn1c_defs/all-defs/MeasurementInitiationResult-List.c new file mode 100644 index 0000000..cb60b47 --- /dev/null +++ b/asn1c_defs/all-defs/MeasurementInitiationResult-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "MeasurementInitiationResult-List.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P11, + 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 */ + { 0, &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/asn1c_defs/all-defs/MeasurementInitiationResult-List.h b/asn1c_defs/all-defs/MeasurementInitiationResult-List.h new file mode 100644 index 0000000..7528d84 --- /dev/null +++ b/asn1c_defs/all-defs/MeasurementInitiationResult-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _MeasurementInitiationResult_List_H_ +#define _MeasurementInitiationResult_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/MeasurementThresholdA2.c b/asn1c_defs/all-defs/MeasurementThresholdA2.c new file mode 100644 index 0000000..d17c3a7 --- /dev/null +++ b/asn1c_defs/all-defs/MeasurementThresholdA2.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "MeasurementThresholdA2.h" + +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) */ + { 0, &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/asn1c_defs/all-defs/MeasurementThresholdA2.h b/asn1c_defs/all-defs/MeasurementThresholdA2.h new file mode 100644 index 0000000..50592ff --- /dev/null +++ b/asn1c_defs/all-defs/MeasurementThresholdA2.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _MeasurementThresholdA2_H_ +#define _MeasurementThresholdA2_H_ + + +#include + +/* Including external dependencies */ +#include "Threshold-RSRP.h" +#include "Threshold-RSRQ.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/MeasurementsToActivate.c b/asn1c_defs/all-defs/MeasurementsToActivate.c new file mode 100644 index 0000000..9ebf370 --- /dev/null +++ b/asn1c_defs/all-defs/MeasurementsToActivate.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_MeasurementsToActivate_constr_1, MeasurementsToActivate_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/MeasurementsToActivate.h b/asn1c_defs/all-defs/MeasurementsToActivate.h new file mode 100644 index 0000000..92b4a4a --- /dev/null +++ b/asn1c_defs/all-defs/MeasurementsToActivate.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _MeasurementsToActivate_H_ +#define _MeasurementsToActivate_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/MobilityChangeAcknowledge.c b/asn1c_defs/all-defs/MobilityChangeAcknowledge.c new file mode 100644 index 0000000..39b20e2 --- /dev/null +++ b/asn1c_defs/all-defs/MobilityChangeAcknowledge.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P36, + 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/asn1c_defs/all-defs/MobilityChangeAcknowledge.h b/asn1c_defs/all-defs/MobilityChangeAcknowledge.h new file mode 100644 index 0000000..3636517 --- /dev/null +++ b/asn1c_defs/all-defs/MobilityChangeAcknowledge.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _MobilityChangeAcknowledge_H_ +#define _MobilityChangeAcknowledge_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MobilityChangeAcknowledge */ +typedef struct MobilityChangeAcknowledge { + ProtocolIE_Container_8180P36_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 diff --git a/asn1c_defs/all-defs/MobilityChangeFailure.c b/asn1c_defs/all-defs/MobilityChangeFailure.c new file mode 100644 index 0000000..a2cfa66 --- /dev/null +++ b/asn1c_defs/all-defs/MobilityChangeFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P37, + 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/asn1c_defs/all-defs/MobilityChangeFailure.h b/asn1c_defs/all-defs/MobilityChangeFailure.h new file mode 100644 index 0000000..a9521e8 --- /dev/null +++ b/asn1c_defs/all-defs/MobilityChangeFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _MobilityChangeFailure_H_ +#define _MobilityChangeFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MobilityChangeFailure */ +typedef struct MobilityChangeFailure { + ProtocolIE_Container_8180P37_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 diff --git a/asn1c_defs/all-defs/MobilityChangeRequest.c b/asn1c_defs/all-defs/MobilityChangeRequest.c new file mode 100644 index 0000000..fb4050a --- /dev/null +++ b/asn1c_defs/all-defs/MobilityChangeRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P35, + 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/asn1c_defs/all-defs/MobilityChangeRequest.h b/asn1c_defs/all-defs/MobilityChangeRequest.h new file mode 100644 index 0000000..549a706 --- /dev/null +++ b/asn1c_defs/all-defs/MobilityChangeRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _MobilityChangeRequest_H_ +#define _MobilityChangeRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MobilityChangeRequest */ +typedef struct MobilityChangeRequest { + ProtocolIE_Container_8180P35_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 diff --git a/asn1c_defs/all-defs/MobilityInformation.c b/asn1c_defs/all-defs/MobilityInformation.c new file mode 100644 index 0000000..2cfa2f5 --- /dev/null +++ b/asn1c_defs/all-defs/MobilityInformation.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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 */ + { 0, &asn_PER_type_MobilityInformation_constr_1, MobilityInformation_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/MobilityInformation.h b/asn1c_defs/all-defs/MobilityInformation.h new file mode 100644 index 0000000..b11f400 --- /dev/null +++ b/asn1c_defs/all-defs/MobilityInformation.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _MobilityInformation_H_ +#define _MobilityInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/MobilityParametersInformation.c b/asn1c_defs/all-defs/MobilityParametersInformation.c new file mode 100644 index 0000000..a8a27c3 --- /dev/null +++ b/asn1c_defs/all-defs/MobilityParametersInformation.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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, + { 0, &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/asn1c_defs/all-defs/MobilityParametersInformation.h b/asn1c_defs/all-defs/MobilityParametersInformation.h new file mode 100644 index 0000000..9ec3191 --- /dev/null +++ b/asn1c_defs/all-defs/MobilityParametersInformation.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _MobilityParametersInformation_H_ +#define _MobilityParametersInformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/MobilityParametersModificationRange.c b/asn1c_defs/all-defs/MobilityParametersModificationRange.c new file mode 100644 index 0000000..f912b2b --- /dev/null +++ b/asn1c_defs/all-defs/MobilityParametersModificationRange.c @@ -0,0 +1,120 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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, + { 0, &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, + { 0, &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/asn1c_defs/all-defs/MobilityParametersModificationRange.h b/asn1c_defs/all-defs/MobilityParametersModificationRange.h new file mode 100644 index 0000000..daf0763 --- /dev/null +++ b/asn1c_defs/all-defs/MobilityParametersModificationRange.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _MobilityParametersModificationRange_H_ +#define _MobilityParametersModificationRange_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/MultibandInfoList.c b/asn1c_defs/all-defs/MultibandInfoList.c new file mode 100644 index 0000000..30de6b9 --- /dev/null +++ b/asn1c_defs/all-defs/MultibandInfoList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "MultibandInfoList.h" + +#include "BandInfo.h" +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 */ + { 0, &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/asn1c_defs/all-defs/MultibandInfoList.h b/asn1c_defs/all-defs/MultibandInfoList.h new file mode 100644 index 0000000..96f5b9a --- /dev/null +++ b/asn1c_defs/all-defs/MultibandInfoList.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _MultibandInfoList_H_ +#define _MultibandInfoList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/NR-TxBW.c b/asn1c_defs/all-defs/NR-TxBW.c new file mode 100644 index 0000000..c14ab95 --- /dev/null +++ b/asn1c_defs/all-defs/NR-TxBW.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P175, + 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/asn1c_defs/all-defs/NR-TxBW.h b/asn1c_defs/all-defs/NR-TxBW.h new file mode 100644 index 0000000..7523a00 --- /dev/null +++ b/asn1c_defs/all-defs/NR-TxBW.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _NR_TxBW_H_ +#define _NR_TxBW_H_ + + +#include + +/* Including external dependencies */ +#include "NRSCS.h" +#include "NRNRB.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/NRCGI.c b/asn1c_defs/all-defs/NRCGI.c new file mode 100644 index 0000000..675401d --- /dev/null +++ b/asn1c_defs/all-defs/NRCGI.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P174, + 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/asn1c_defs/all-defs/NRCGI.h b/asn1c_defs/all-defs/NRCGI.h new file mode 100644 index 0000000..ae433d0 --- /dev/null +++ b/asn1c_defs/all-defs/NRCGI.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _NRCGI_H_ +#define _NRCGI_H_ + + +#include + +/* Including external dependencies */ +#include "PLMN-Identity.h" +#include "NRCellIdentifier.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/NRCellIdentifier.c b/asn1c_defs/all-defs/NRCellIdentifier.c new file mode 100644 index 0000000..6e0844c --- /dev/null +++ b/asn1c_defs/all-defs/NRCellIdentifier.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_NRCellIdentifier_constr_1, NRCellIdentifier_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/NRCellIdentifier.h b/asn1c_defs/all-defs/NRCellIdentifier.h new file mode 100644 index 0000000..d97c456 --- /dev/null +++ b/asn1c_defs/all-defs/NRCellIdentifier.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _NRCellIdentifier_H_ +#define _NRCellIdentifier_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/NRFreqInfo.c b/asn1c_defs/all-defs/NRFreqInfo.c new file mode 100644 index 0000000..a78e8ad --- /dev/null +++ b/asn1c_defs/all-defs/NRFreqInfo.c @@ -0,0 +1,188 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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_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 */ + { 0, &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, + { 0, &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, + { 0, &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_8231P173, + 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/asn1c_defs/all-defs/NRFreqInfo.h b/asn1c_defs/all-defs/NRFreqInfo.h new file mode 100644 index 0000000..64b9920 --- /dev/null +++ b/asn1c_defs/all-defs/NRFreqInfo.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _NRFreqInfo_H_ +#define _NRFreqInfo_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/NRNRB.c b/asn1c_defs/all-defs/NRNRB.c new file mode 100644 index 0000000..5a50082 --- /dev/null +++ b/asn1c_defs/all-defs/NRNRB.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "NRNRB.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_NRNRB_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_NRNRB_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/NRNRB.h b/asn1c_defs/all-defs/NRNRB.h new file mode 100644 index 0000000..4e19ee3 --- /dev/null +++ b/asn1c_defs/all-defs/NRNRB.h @@ -0,0 +1,81 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _NRNRB_H_ +#define _NRNRB_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/NRNeighbour-Information.c b/asn1c_defs/all-defs/NRNeighbour-Information.c new file mode 100644 index 0000000..57ad827 --- /dev/null +++ b/asn1c_defs/all-defs/NRNeighbour-Information.c @@ -0,0 +1,210 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "NRNeighbour-Information.h" + +#include "ProtocolExtensionContainer.h" +#include "FDD-InfoNeighbourServedNRCell-Information.h" +#include "TDD-InfoNeighbourServedNRCell-Information.h" +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 */ +}; +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) */ + { 0, &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_8231P97, + 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 */ + { 0, &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/asn1c_defs/all-defs/NRNeighbour-Information.h b/asn1c_defs/all-defs/NRNeighbour-Information.h new file mode 100644 index 0000000..7de4310 --- /dev/null +++ b/asn1c_defs/all-defs/NRNeighbour-Information.h @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _NRNeighbour_Information_H_ +#define _NRNeighbour_Information_H_ + + +#include + +/* Including external dependencies */ +#include +#include "NRPCI.h" +#include "NRCGI.h" +#include "FiveGS-TAC.h" +#include "TAC.h" +#include +#include +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/NRPCI.c b/asn1c_defs/all-defs/NRPCI.c new file mode 100644 index 0000000..ef1f257 --- /dev/null +++ b/asn1c_defs/all-defs/NRPCI.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_NRPCI_constr_1, NRPCI_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/NRPCI.h b/asn1c_defs/all-defs/NRPCI.h new file mode 100644 index 0000000..def5960 --- /dev/null +++ b/asn1c_defs/all-defs/NRPCI.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _NRPCI_H_ +#define _NRPCI_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/NRS-NSSS-PowerOffset.c b/asn1c_defs/all-defs/NRS-NSSS-PowerOffset.c new file mode 100644 index 0000000..1cfa26d --- /dev/null +++ b/asn1c_defs/all-defs/NRS-NSSS-PowerOffset.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "NRS-NSSS-PowerOffset.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &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/asn1c_defs/all-defs/NRS-NSSS-PowerOffset.h b/asn1c_defs/all-defs/NRS-NSSS-PowerOffset.h new file mode 100644 index 0000000..7619188 --- /dev/null +++ b/asn1c_defs/all-defs/NRS-NSSS-PowerOffset.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _NRS_NSSS_PowerOffset_H_ +#define _NRS_NSSS_PowerOffset_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/NRSCS.c b/asn1c_defs/all-defs/NRSCS.c new file mode 100644 index 0000000..71bb0a9 --- /dev/null +++ b/asn1c_defs/all-defs/NRSCS.c @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "NRSCS.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_NRSCS_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_NRSCS_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/NRSCS.h b/asn1c_defs/all-defs/NRSCS.h new file mode 100644 index 0000000..b7454a4 --- /dev/null +++ b/asn1c_defs/all-defs/NRSCS.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _NRSCS_H_ +#define _NRSCS_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/NRUESecurityCapabilities.c b/asn1c_defs/all-defs/NRUESecurityCapabilities.c new file mode 100644 index 0000000..1c662d7 --- /dev/null +++ b/asn1c_defs/all-defs/NRUESecurityCapabilities.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P176, + 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/asn1c_defs/all-defs/NRUESecurityCapabilities.h b/asn1c_defs/all-defs/NRUESecurityCapabilities.h new file mode 100644 index 0000000..11654cf --- /dev/null +++ b/asn1c_defs/all-defs/NRUESecurityCapabilities.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _NRUESecurityCapabilities_H_ +#define _NRUESecurityCapabilities_H_ + + +#include + +/* Including external dependencies */ +#include "NRencryptionAlgorithms.h" +#include "NRintegrityProtectionAlgorithms.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/NRencryptionAlgorithms.c b/asn1c_defs/all-defs/NRencryptionAlgorithms.c new file mode 100644 index 0000000..4f52c1c --- /dev/null +++ b/asn1c_defs/all-defs/NRencryptionAlgorithms.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_NRencryptionAlgorithms_constr_1, NRencryptionAlgorithms_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/NRencryptionAlgorithms.h b/asn1c_defs/all-defs/NRencryptionAlgorithms.h new file mode 100644 index 0000000..f354f96 --- /dev/null +++ b/asn1c_defs/all-defs/NRencryptionAlgorithms.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _NRencryptionAlgorithms_H_ +#define _NRencryptionAlgorithms_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/NRintegrityProtectionAlgorithms.c b/asn1c_defs/all-defs/NRintegrityProtectionAlgorithms.c new file mode 100644 index 0000000..10d8399 --- /dev/null +++ b/asn1c_defs/all-defs/NRintegrityProtectionAlgorithms.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_NRintegrityProtectionAlgorithms_constr_1, NRintegrityProtectionAlgorithms_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/NRintegrityProtectionAlgorithms.h b/asn1c_defs/all-defs/NRintegrityProtectionAlgorithms.h new file mode 100644 index 0000000..970cfee --- /dev/null +++ b/asn1c_defs/all-defs/NRintegrityProtectionAlgorithms.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _NRintegrityProtectionAlgorithms_H_ +#define _NRintegrityProtectionAlgorithms_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/NRrestrictionin5GS.c b/asn1c_defs/all-defs/NRrestrictionin5GS.c new file mode 100644 index 0000000..64cc05b --- /dev/null +++ b/asn1c_defs/all-defs/NRrestrictionin5GS.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "NRrestrictionin5GS.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_NRrestrictionin5GS_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_NRrestrictionin5GS_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/NRrestrictionin5GS.h b/asn1c_defs/all-defs/NRrestrictionin5GS.h new file mode 100644 index 0000000..0578b8c --- /dev/null +++ b/asn1c_defs/all-defs/NRrestrictionin5GS.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _NRrestrictionin5GS_H_ +#define _NRrestrictionin5GS_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/NRrestrictioninEPSasSecondaryRAT.c b/asn1c_defs/all-defs/NRrestrictioninEPSasSecondaryRAT.c new file mode 100644 index 0000000..93b7eb1 --- /dev/null +++ b/asn1c_defs/all-defs/NRrestrictioninEPSasSecondaryRAT.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "NRrestrictioninEPSasSecondaryRAT.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_NRrestrictioninEPSasSecondaryRAT_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_NRrestrictioninEPSasSecondaryRAT_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/NRrestrictioninEPSasSecondaryRAT.h b/asn1c_defs/all-defs/NRrestrictioninEPSasSecondaryRAT.h new file mode 100644 index 0000000..0c8a7c3 --- /dev/null +++ b/asn1c_defs/all-defs/NRrestrictioninEPSasSecondaryRAT.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _NRrestrictioninEPSasSecondaryRAT_H_ +#define _NRrestrictioninEPSasSecondaryRAT_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/NSSS-NumOccasionDifferentPrecoder.c b/asn1c_defs/all-defs/NSSS-NumOccasionDifferentPrecoder.c new file mode 100644 index 0000000..b50ceb0 --- /dev/null +++ b/asn1c_defs/all-defs/NSSS-NumOccasionDifferentPrecoder.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "NSSS-NumOccasionDifferentPrecoder.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_NSSS_NumOccasionDifferentPrecoder_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_NSSS_NumOccasionDifferentPrecoder_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/NSSS-NumOccasionDifferentPrecoder.h b/asn1c_defs/all-defs/NSSS-NumOccasionDifferentPrecoder.h new file mode 100644 index 0000000..7a9c3e3 --- /dev/null +++ b/asn1c_defs/all-defs/NSSS-NumOccasionDifferentPrecoder.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _NSSS_NumOccasionDifferentPrecoder_H_ +#define _NSSS_NumOccasionDifferentPrecoder_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/NULL.c b/asn1c_defs/all-defs/NULL.c new file mode 100644 index 0000000..4a2914f --- /dev/null +++ b/asn1c_defs/all-defs/NULL.c @@ -0,0 +1,299 @@ +/*- + * Copyright (c) 2003, 2005 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include /* 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 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("", 9, app_key) < 0) ? -1 : 0; + } else { + return (cb("", 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/asn1c_defs/all-defs/NULL.h b/asn1c_defs/all-defs/NULL.h new file mode 100644 index 0000000..802d12c --- /dev/null +++ b/asn1c_defs/all-defs/NULL.h @@ -0,0 +1,45 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_TYPE_NULL_H +#define ASN_TYPE_NULL_H + +#include +#include + +#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/asn1c_defs/all-defs/NativeEnumerated.c b/asn1c_defs/all-defs/NativeEnumerated.c new file mode 100644 index 0000000..800da97 --- /dev/null +++ b/asn1c_defs/all-defs/NativeEnumerated.c @@ -0,0 +1,367 @@ +/*- + * Copyright (c) 2004, 2007 Lev Walkin . 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 +#include + +/* + * 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/asn1c_defs/all-defs/NativeEnumerated.h b/asn1c_defs/all-defs/NativeEnumerated.h new file mode 100644 index 0000000..459f0e6 --- /dev/null +++ b/asn1c_defs/all-defs/NativeEnumerated.h @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2004-2017 Lev Walkin . 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 + +#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/asn1c_defs/all-defs/NativeInteger.c b/asn1c_defs/all-defs/NativeInteger.c new file mode 100644 index 0000000..316e872 --- /dev/null +++ b/asn1c_defs/all-defs/NativeInteger.c @@ -0,0 +1,550 @@ +/*- + * Copyright (c) 2004, 2005, 2006 Lev Walkin . + * 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 +#include + +/* + * 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("", 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/asn1c_defs/all-defs/NativeInteger.h b/asn1c_defs/all-defs/NativeInteger.h new file mode 100644 index 0000000..c74406a --- /dev/null +++ b/asn1c_defs/all-defs/NativeInteger.h @@ -0,0 +1,46 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . 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 +#include + +#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/asn1c_defs/all-defs/Neighbour-Information.c b/asn1c_defs/all-defs/Neighbour-Information.c new file mode 100644 index 0000000..3c994f2 --- /dev/null +++ b/asn1c_defs/all-defs/Neighbour-Information.c @@ -0,0 +1,124 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "Neighbour-Information.h" + +#include "ProtocolExtensionContainer.h" +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_8231P172, + 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 */ + { 0, &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/asn1c_defs/all-defs/Neighbour-Information.h b/asn1c_defs/all-defs/Neighbour-Information.h new file mode 100644 index 0000000..64b1363 --- /dev/null +++ b/asn1c_defs/all-defs/Neighbour-Information.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _Neighbour_Information_H_ +#define _Neighbour_Information_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ECGI.h" +#include "PCI.h" +#include "EARFCN.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/NewDRBIDrequest.c b/asn1c_defs/all-defs/NewDRBIDrequest.c new file mode 100644 index 0000000..1e70a4e --- /dev/null +++ b/asn1c_defs/all-defs/NewDRBIDrequest.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "NewDRBIDrequest.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_NewDRBIDrequest_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_NewDRBIDrequest_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/NewDRBIDrequest.h b/asn1c_defs/all-defs/NewDRBIDrequest.h new file mode 100644 index 0000000..ab14cbc --- /dev/null +++ b/asn1c_defs/all-defs/NewDRBIDrequest.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _NewDRBIDrequest_H_ +#define _NewDRBIDrequest_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/NextHopChainingCount.c b/asn1c_defs/all-defs/NextHopChainingCount.c new file mode 100644 index 0000000..f138df5 --- /dev/null +++ b/asn1c_defs/all-defs/NextHopChainingCount.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_NextHopChainingCount_constr_1, NextHopChainingCount_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/NextHopChainingCount.h b/asn1c_defs/all-defs/NextHopChainingCount.h new file mode 100644 index 0000000..d9cfaf5 --- /dev/null +++ b/asn1c_defs/all-defs/NextHopChainingCount.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _NextHopChainingCount_H_ +#define _NextHopChainingCount_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/Number-of-Antennaports.c b/asn1c_defs/all-defs/Number-of-Antennaports.c new file mode 100644 index 0000000..79aacbb --- /dev/null +++ b/asn1c_defs/all-defs/Number-of-Antennaports.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "Number-of-Antennaports.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &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/asn1c_defs/all-defs/Number-of-Antennaports.h b/asn1c_defs/all-defs/Number-of-Antennaports.h new file mode 100644 index 0000000..111447d --- /dev/null +++ b/asn1c_defs/all-defs/Number-of-Antennaports.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _Number_of_Antennaports_H_ +#define _Number_of_Antennaports_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/OBJECT_IDENTIFIER.c b/asn1c_defs/all-defs/OBJECT_IDENTIFIER.c new file mode 100644 index 0000000..8dccf01 --- /dev/null +++ b/asn1c_defs/all-defs/OBJECT_IDENTIFIER.c @@ -0,0 +1,656 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include +#include /* for CHAR_BIT */ +#include + +/* + * 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("", 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 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/asn1c_defs/all-defs/OBJECT_IDENTIFIER.h b/asn1c_defs/all-defs/OBJECT_IDENTIFIER.h new file mode 100644 index 0000000..087c6fd --- /dev/null +++ b/asn1c_defs/all-defs/OBJECT_IDENTIFIER.h @@ -0,0 +1,156 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _OBJECT_IDENTIFIER_H_ +#define _OBJECT_IDENTIFIER_H_ + +#include +#include +#include + +#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. + * : 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/asn1c_defs/all-defs/OCTET_STRING.c b/asn1c_defs/all-defs/OCTET_STRING.c new file mode 100644 index 0000000..432ce5a --- /dev/null +++ b/asn1c_defs/all-defs/OCTET_STRING.c @@ -0,0 +1,2409 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include /* for .bits_unused member */ +#include + +/* + * 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 : "", + (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: [] 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"), /* */ + OSXET("\074\163\157\150\057\076"), /* */ + OSXET("\074\163\164\170\057\076"), /* */ + OSXET("\074\145\164\170\057\076"), /* */ + OSXET("\074\145\157\164\057\076"), /* */ + OSXET("\074\145\156\161\057\076"), /* */ + OSXET("\074\141\143\153\057\076"), /* */ + OSXET("\074\142\145\154\057\076"), /* */ + OSXET("\074\142\163\057\076"), /* */ + OSXET("\011"), /* \t */ + OSXET("\012"), /* \n */ + OSXET("\074\166\164\057\076"), /* */ + OSXET("\074\146\146\057\076"), /* */ + OSXET("\015"), /* \r */ + OSXET("\074\163\157\057\076"), /* */ + OSXET("\074\163\151\057\076"), /* */ + OSXET("\074\144\154\145\057\076"), /* */ + OSXET("\074\144\143\061\057\076"), /* */ + OSXET("\074\144\143\062\057\076"), /* */ + OSXET("\074\144\143\063\057\076"), /* */ + OSXET("\074\144\143\064\057\076"), /* */ + OSXET("\074\156\141\153\057\076"), /* */ + OSXET("\074\163\171\156\057\076"), /* */ + OSXET("\074\145\164\142\057\076"), /* */ + OSXET("\074\143\141\156\057\076"), /* */ + OSXET("\074\145\155\057\076"), /* */ + OSXET("\074\163\165\142\057\076"), /* */ + OSXET("\074\145\163\143\057\076"), /* */ + OSXET("\074\151\163\064\057\076"), /* */ + OSXET("\074\151\163\063\057\076"), /* */ + OSXET("\074\151\163\062\057\076"), /* */ + OSXET("\074\151\163\061\057\076"), /* */ + { 0, 0 }, /* " " */ + { 0, 0 }, /* ! */ + { 0, 0 }, /* \" */ + { 0, 0 }, /* # */ + { 0, 0 }, /* $ */ + { 0, 0 }, /* % */ + OSXET("\046\141\155\160\073"), /* & */ + { 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"), /* < */ + { 0, 0 }, /* = */ + OSXET("\046\147\164\073"), /* > */ +}; + +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 < 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 & > < + */ + 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("", 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("", 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/asn1c_defs/all-defs/OCTET_STRING.h b/asn1c_defs/all-defs/OCTET_STRING.h new file mode 100644 index 0000000..c2f8bae --- /dev/null +++ b/asn1c_defs/all-defs/OCTET_STRING.h @@ -0,0 +1,102 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _OCTET_STRING_H_ +#define _OCTET_STRING_H_ + +#include + +#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/asn1c_defs/all-defs/OPEN_TYPE.c b/asn1c_defs/all-defs/OPEN_TYPE.c new file mode 100644 index 0000000..a54e99c --- /dev/null +++ b/asn1c_defs/all-defs/OPEN_TYPE.c @@ -0,0 +1,509 @@ +/* + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include +#include + +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/asn1c_defs/all-defs/OPEN_TYPE.h b/asn1c_defs/all-defs/OPEN_TYPE.h new file mode 100644 index 0000000..b0d023c --- /dev/null +++ b/asn1c_defs/all-defs/OPEN_TYPE.h @@ -0,0 +1,77 @@ +/*- + * Copyright (c) 2017-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_OPEN_TYPE_H +#define ASN_OPEN_TYPE_H + +#include + +#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/asn1c_defs/all-defs/OffsetOfNbiotChannelNumberToEARFCN.c b/asn1c_defs/all-defs/OffsetOfNbiotChannelNumberToEARFCN.c new file mode 100644 index 0000000..b9fc076 --- /dev/null +++ b/asn1c_defs/all-defs/OffsetOfNbiotChannelNumberToEARFCN.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "OffsetOfNbiotChannelNumberToEARFCN.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_OffsetOfNbiotChannelNumberToEARFCN_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_OffsetOfNbiotChannelNumberToEARFCN_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/OffsetOfNbiotChannelNumberToEARFCN.h b/asn1c_defs/all-defs/OffsetOfNbiotChannelNumberToEARFCN.h new file mode 100644 index 0000000..9887bb2 --- /dev/null +++ b/asn1c_defs/all-defs/OffsetOfNbiotChannelNumberToEARFCN.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _OffsetOfNbiotChannelNumberToEARFCN_H_ +#define _OffsetOfNbiotChannelNumberToEARFCN_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/Old-ECGIs.c b/asn1c_defs/all-defs/Old-ECGIs.c new file mode 100644 index 0000000..446c61b --- /dev/null +++ b/asn1c_defs/all-defs/Old-ECGIs.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "Old-ECGIs.h" + +#include "ECGI.h" +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 */ + { 0, &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/asn1c_defs/all-defs/Old-ECGIs.h b/asn1c_defs/all-defs/Old-ECGIs.h new file mode 100644 index 0000000..d55de1d --- /dev/null +++ b/asn1c_defs/all-defs/Old-ECGIs.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _Old_ECGIs_H_ +#define _Old_ECGIs_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/Oneframe.c b/asn1c_defs/all-defs/Oneframe.c new file mode 100644 index 0000000..8f71059 --- /dev/null +++ b/asn1c_defs/all-defs/Oneframe.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_Oneframe_constr_1, Oneframe_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/Oneframe.h b/asn1c_defs/all-defs/Oneframe.h new file mode 100644 index 0000000..ed62f88 --- /dev/null +++ b/asn1c_defs/all-defs/Oneframe.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _Oneframe_H_ +#define _Oneframe_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/PA-Values.c b/asn1c_defs/all-defs/PA-Values.c new file mode 100644 index 0000000..c099e34 --- /dev/null +++ b/asn1c_defs/all-defs/PA-Values.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "PA-Values.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_PA_Values_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PA_Values_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/PA-Values.h b/asn1c_defs/all-defs/PA-Values.h new file mode 100644 index 0000000..ecde31d --- /dev/null +++ b/asn1c_defs/all-defs/PA-Values.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _PA_Values_H_ +#define _PA_Values_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/PCI.c b/asn1c_defs/all-defs/PCI.c new file mode 100644 index 0000000..50ef9ae --- /dev/null +++ b/asn1c_defs/all-defs/PCI.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_PCI_constr_1, PCI_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/PCI.h b/asn1c_defs/all-defs/PCI.h new file mode 100644 index 0000000..248b3d1 --- /dev/null +++ b/asn1c_defs/all-defs/PCI.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _PCI_H_ +#define _PCI_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/PDCP-SN.c b/asn1c_defs/all-defs/PDCP-SN.c new file mode 100644 index 0000000..fcba6ae --- /dev/null +++ b/asn1c_defs/all-defs/PDCP-SN.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_PDCP_SN_constr_1, PDCP_SN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/PDCP-SN.h b/asn1c_defs/all-defs/PDCP-SN.h new file mode 100644 index 0000000..3c06469 --- /dev/null +++ b/asn1c_defs/all-defs/PDCP-SN.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _PDCP_SN_H_ +#define _PDCP_SN_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/PDCP-SNExtended.c b/asn1c_defs/all-defs/PDCP-SNExtended.c new file mode 100644 index 0000000..94089cc --- /dev/null +++ b/asn1c_defs/all-defs/PDCP-SNExtended.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_PDCP_SNExtended_constr_1, PDCP_SNExtended_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/PDCP-SNExtended.h b/asn1c_defs/all-defs/PDCP-SNExtended.h new file mode 100644 index 0000000..5d496ac --- /dev/null +++ b/asn1c_defs/all-defs/PDCP-SNExtended.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _PDCP_SNExtended_H_ +#define _PDCP_SNExtended_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/PDCP-SNlength18.c b/asn1c_defs/all-defs/PDCP-SNlength18.c new file mode 100644 index 0000000..c9ed252 --- /dev/null +++ b/asn1c_defs/all-defs/PDCP-SNlength18.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_PDCP_SNlength18_constr_1, PDCP_SNlength18_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/PDCP-SNlength18.h b/asn1c_defs/all-defs/PDCP-SNlength18.h new file mode 100644 index 0000000..4efe868 --- /dev/null +++ b/asn1c_defs/all-defs/PDCP-SNlength18.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _PDCP_SNlength18_H_ +#define _PDCP_SNlength18_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/PDCPChangeIndication.c b/asn1c_defs/all-defs/PDCPChangeIndication.c new file mode 100644 index 0000000..55e3bf3 --- /dev/null +++ b/asn1c_defs/all-defs/PDCPChangeIndication.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "PDCPChangeIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_PDCPChangeIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PDCPChangeIndication_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/PDCPChangeIndication.h b/asn1c_defs/all-defs/PDCPChangeIndication.h new file mode 100644 index 0000000..71d5b4f --- /dev/null +++ b/asn1c_defs/all-defs/PDCPChangeIndication.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _PDCPChangeIndication_H_ +#define _PDCPChangeIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/PDCPSnLength.c b/asn1c_defs/all-defs/PDCPSnLength.c new file mode 100644 index 0000000..55a207b --- /dev/null +++ b/asn1c_defs/all-defs/PDCPSnLength.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "PDCPSnLength.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_PDCPSnLength_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PDCPSnLength_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/PDCPSnLength.h b/asn1c_defs/all-defs/PDCPSnLength.h new file mode 100644 index 0000000..e1145b4 --- /dev/null +++ b/asn1c_defs/all-defs/PDCPSnLength.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _PDCPSnLength_H_ +#define _PDCPSnLength_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/PLMN-Identity.c b/asn1c_defs/all-defs/PLMN-Identity.c new file mode 100644 index 0000000..5daa734 --- /dev/null +++ b/asn1c_defs/all-defs/PLMN-Identity.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_PLMN_Identity_constr_1, PLMN_Identity_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/PLMN-Identity.h b/asn1c_defs/all-defs/PLMN-Identity.h new file mode 100644 index 0000000..cb0e449 --- /dev/null +++ b/asn1c_defs/all-defs/PLMN-Identity.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _PLMN_Identity_H_ +#define _PLMN_Identity_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/PLMNAreaBasedQMC.c b/asn1c_defs/all-defs/PLMNAreaBasedQMC.c new file mode 100644 index 0000000..fbfb7bf --- /dev/null +++ b/asn1c_defs/all-defs/PLMNAreaBasedQMC.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P178, + 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/asn1c_defs/all-defs/PLMNAreaBasedQMC.h b/asn1c_defs/all-defs/PLMNAreaBasedQMC.h new file mode 100644 index 0000000..fe19a67 --- /dev/null +++ b/asn1c_defs/all-defs/PLMNAreaBasedQMC.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _PLMNAreaBasedQMC_H_ +#define _PLMNAreaBasedQMC_H_ + + +#include + +/* Including external dependencies */ +#include "PLMNListforQMC.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/PLMNListforQMC.c b/asn1c_defs/all-defs/PLMNListforQMC.c new file mode 100644 index 0000000..c5c3622 --- /dev/null +++ b/asn1c_defs/all-defs/PLMNListforQMC.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "PLMNListforQMC.h" + +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 */ + { 0, &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/asn1c_defs/all-defs/PLMNListforQMC.h b/asn1c_defs/all-defs/PLMNListforQMC.h new file mode 100644 index 0000000..0248cea --- /dev/null +++ b/asn1c_defs/all-defs/PLMNListforQMC.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _PLMNListforQMC_H_ +#define _PLMNListforQMC_H_ + + +#include + +/* Including external dependencies */ +#include "PLMN-Identity.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/PRACH-Configuration.c b/asn1c_defs/all-defs/PRACH-Configuration.c new file mode 100644 index 0000000..411197e --- /dev/null +++ b/asn1c_defs/all-defs/PRACH-Configuration.c @@ -0,0 +1,223 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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_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_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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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_8231P177, + 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/asn1c_defs/all-defs/PRACH-Configuration.h b/asn1c_defs/all-defs/PRACH-Configuration.h new file mode 100644 index 0000000..08a196b --- /dev/null +++ b/asn1c_defs/all-defs/PRACH-Configuration.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _PRACH_Configuration_H_ +#define _PRACH_Configuration_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/Packet-LossRate.c b/asn1c_defs/all-defs/Packet-LossRate.c new file mode 100644 index 0000000..a57932d --- /dev/null +++ b/asn1c_defs/all-defs/Packet-LossRate.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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 */ + { 0, &asn_PER_type_Packet_LossRate_constr_1, Packet_LossRate_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/Packet-LossRate.h b/asn1c_defs/all-defs/Packet-LossRate.h new file mode 100644 index 0000000..f07ff0e --- /dev/null +++ b/asn1c_defs/all-defs/Packet-LossRate.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _Packet_LossRate_H_ +#define _Packet_LossRate_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/PartialSuccessIndicator.c b/asn1c_defs/all-defs/PartialSuccessIndicator.c new file mode 100644 index 0000000..88acbd8 --- /dev/null +++ b/asn1c_defs/all-defs/PartialSuccessIndicator.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "PartialSuccessIndicator.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_PartialSuccessIndicator_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PartialSuccessIndicator_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/PartialSuccessIndicator.h b/asn1c_defs/all-defs/PartialSuccessIndicator.h new file mode 100644 index 0000000..83377fe --- /dev/null +++ b/asn1c_defs/all-defs/PartialSuccessIndicator.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _PartialSuccessIndicator_H_ +#define _PartialSuccessIndicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/PedestrianUE.c b/asn1c_defs/all-defs/PedestrianUE.c new file mode 100644 index 0000000..7c8681a --- /dev/null +++ b/asn1c_defs/all-defs/PedestrianUE.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "PedestrianUE.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_PedestrianUE_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PedestrianUE_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/PedestrianUE.h b/asn1c_defs/all-defs/PedestrianUE.h new file mode 100644 index 0000000..fe4120f --- /dev/null +++ b/asn1c_defs/all-defs/PedestrianUE.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _PedestrianUE_H_ +#define _PedestrianUE_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/Port-Number.c b/asn1c_defs/all-defs/Port-Number.c new file mode 100644 index 0000000..8a1c8f9 --- /dev/null +++ b/asn1c_defs/all-defs/Port-Number.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_Port_Number_constr_1, Port_Number_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/Port-Number.h b/asn1c_defs/all-defs/Port-Number.h new file mode 100644 index 0000000..531fd81 --- /dev/null +++ b/asn1c_defs/all-defs/Port-Number.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _Port_Number_H_ +#define _Port_Number_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/Pre-emptionCapability.c b/asn1c_defs/all-defs/Pre-emptionCapability.c new file mode 100644 index 0000000..ae9e4ea --- /dev/null +++ b/asn1c_defs/all-defs/Pre-emptionCapability.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "Pre-emptionCapability.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_Pre_emptionCapability_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Pre_emptionCapability_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/Pre-emptionCapability.h b/asn1c_defs/all-defs/Pre-emptionCapability.h new file mode 100644 index 0000000..7a77253 --- /dev/null +++ b/asn1c_defs/all-defs/Pre-emptionCapability.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _Pre_emptionCapability_H_ +#define _Pre_emptionCapability_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/Pre-emptionVulnerability.c b/asn1c_defs/all-defs/Pre-emptionVulnerability.c new file mode 100644 index 0000000..359da6d --- /dev/null +++ b/asn1c_defs/all-defs/Pre-emptionVulnerability.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "Pre-emptionVulnerability.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_Pre_emptionVulnerability_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Pre_emptionVulnerability_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/Pre-emptionVulnerability.h b/asn1c_defs/all-defs/Pre-emptionVulnerability.h new file mode 100644 index 0000000..4c71b86 --- /dev/null +++ b/asn1c_defs/all-defs/Pre-emptionVulnerability.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _Pre_emptionVulnerability_H_ +#define _Pre_emptionVulnerability_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/Presence.c b/asn1c_defs/all-defs/Presence.c new file mode 100644 index 0000000..728a321 --- /dev/null +++ b/asn1c_defs/all-defs/Presence.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-CommonDataTypes" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "Presence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_Presence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Presence_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/Presence.h b/asn1c_defs/all-defs/Presence.h new file mode 100644 index 0000000..3a8a5e6 --- /dev/null +++ b/asn1c_defs/all-defs/Presence.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-CommonDataTypes" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _Presence_H_ +#define _Presence_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/PrintableString.c b/asn1c_defs/all-defs/PrintableString.c new file mode 100644 index 0000000..8fc3939 --- /dev/null +++ b/asn1c_defs/all-defs/PrintableString.c @@ -0,0 +1,130 @@ +/*- + * Copyright (c) 2003, 2004, 2006 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * 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/asn1c_defs/all-defs/PrintableString.h b/asn1c_defs/all-defs/PrintableString.h new file mode 100644 index 0000000..8c2b61a --- /dev/null +++ b/asn1c_defs/all-defs/PrintableString.h @@ -0,0 +1,37 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _PrintableString_H_ +#define _PrintableString_H_ + +#include + +#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/asn1c_defs/all-defs/PriorityLevel.c b/asn1c_defs/all-defs/PriorityLevel.c new file mode 100644 index 0000000..9c35f9b --- /dev/null +++ b/asn1c_defs/all-defs/PriorityLevel.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_PriorityLevel_constr_1, PriorityLevel_constraint }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/PriorityLevel.h b/asn1c_defs/all-defs/PriorityLevel.h new file mode 100644 index 0000000..6e334ea --- /dev/null +++ b/asn1c_defs/all-defs/PriorityLevel.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _PriorityLevel_H_ +#define _PriorityLevel_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/PrivateIE-Container.c b/asn1c_defs/all-defs/PrivateIE-Container.c new file mode 100644 index 0000000..9f28e55 --- /dev/null +++ b/asn1c_defs/all-defs/PrivateIE-Container.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-Containers" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "PrivateIE-Container.h" + +#include "PrivateIE-Field.h" +asn_per_constraints_t asn_PER_type_PrivateIE_Container_8247P0_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_8247P0_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_8247P0_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PrivateIE_Container_8247P0_specs_1 = { + sizeof(struct PrivateIE_Container_8247P0), + offsetof(struct PrivateIE_Container_8247P0, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PrivateIE_Container_8247P0 = { + "PrivateIE-Container", + "PrivateIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_PrivateIE_Container_8247P0_tags_1, + sizeof(asn_DEF_PrivateIE_Container_8247P0_tags_1) + /sizeof(asn_DEF_PrivateIE_Container_8247P0_tags_1[0]), /* 1 */ + asn_DEF_PrivateIE_Container_8247P0_tags_1, /* Same as above */ + sizeof(asn_DEF_PrivateIE_Container_8247P0_tags_1) + /sizeof(asn_DEF_PrivateIE_Container_8247P0_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_PrivateIE_Container_8247P0_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PrivateIE_Container_8247P0_1, + 1, /* Single element */ + &asn_SPC_PrivateIE_Container_8247P0_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/PrivateIE-Container.h b/asn1c_defs/all-defs/PrivateIE-Container.h new file mode 100644 index 0000000..0dc882b --- /dev/null +++ b/asn1c_defs/all-defs/PrivateIE-Container.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-Containers" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _PrivateIE_Container_H_ +#define _PrivateIE_Container_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PrivateMessage_IEs; + +/* PrivateIE-Container */ +typedef struct PrivateIE_Container_8247P0 { + A_SEQUENCE_OF(struct PrivateMessage_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PrivateIE_Container_8247P0_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PrivateIE_Container_8247P0; +extern asn_SET_OF_specifics_t asn_SPC_PrivateIE_Container_8247P0_specs_1; +extern asn_TYPE_member_t asn_MBR_PrivateIE_Container_8247P0_1[1]; +extern asn_per_constraints_t asn_PER_type_PrivateIE_Container_8247P0_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PrivateIE_Container_H_ */ +#include diff --git a/asn1c_defs/all-defs/PrivateIE-Field.c b/asn1c_defs/all-defs/PrivateIE-Field.c new file mode 100644 index 0000000..7b7a56f --- /dev/null +++ b/asn1c_defs/all-defs/PrivateIE-Field.c @@ -0,0 +1,166 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-Containers" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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_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, + { 0, &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, + { 0, &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, + { 0, &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/asn1c_defs/all-defs/PrivateIE-Field.h b/asn1c_defs/all-defs/PrivateIE-Field.h new file mode 100644 index 0000000..1432abf --- /dev/null +++ b/asn1c_defs/all-defs/PrivateIE-Field.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-Containers" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _PrivateIE_Field_H_ +#define _PrivateIE_Field_H_ + + +#include + +/* Including external dependencies */ +#include "PrivateIE-ID.h" +#include "Criticality.h" +#include +#include +#include +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/PrivateIE-ID.c b/asn1c_defs/all-defs/PrivateIE-ID.c new file mode 100644 index 0000000..14109dc --- /dev/null +++ b/asn1c_defs/all-defs/PrivateIE-ID.c @@ -0,0 +1,92 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-CommonDataTypes" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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 */ +}; +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, + { 0, &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) */ + { 0, &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/asn1c_defs/all-defs/PrivateIE-ID.h b/asn1c_defs/all-defs/PrivateIE-ID.h new file mode 100644 index 0000000..1cdcc65 --- /dev/null +++ b/asn1c_defs/all-defs/PrivateIE-ID.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-CommonDataTypes" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _PrivateIE_ID_H_ +#define _PrivateIE_ID_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/PrivateMessage.c b/asn1c_defs/all-defs/PrivateMessage.c new file mode 100644 index 0000000..0503aef --- /dev/null +++ b/asn1c_defs/all-defs/PrivateMessage.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8247P0, + 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/asn1c_defs/all-defs/PrivateMessage.h b/asn1c_defs/all-defs/PrivateMessage.h new file mode 100644 index 0000000..e699baa --- /dev/null +++ b/asn1c_defs/all-defs/PrivateMessage.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _PrivateMessage_H_ +#define _PrivateMessage_H_ + + +#include + +/* Including external dependencies */ +#include "PrivateIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PrivateMessage */ +typedef struct PrivateMessage { + PrivateIE_Container_8247P0_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 diff --git a/asn1c_defs/all-defs/ProSeAuthorized.c b/asn1c_defs/all-defs/ProSeAuthorized.c new file mode 100644 index 0000000..daabf33 --- /dev/null +++ b/asn1c_defs/all-defs/ProSeAuthorized.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P179, + 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/asn1c_defs/all-defs/ProSeAuthorized.h b/asn1c_defs/all-defs/ProSeAuthorized.h new file mode 100644 index 0000000..e1bfd6f --- /dev/null +++ b/asn1c_defs/all-defs/ProSeAuthorized.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ProSeAuthorized_H_ +#define _ProSeAuthorized_H_ + + +#include + +/* Including external dependencies */ +#include "ProSeDirectDiscovery.h" +#include "ProSeDirectCommunication.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/ProSeDirectCommunication.c b/asn1c_defs/all-defs/ProSeDirectCommunication.c new file mode 100644 index 0000000..aa7f6f5 --- /dev/null +++ b/asn1c_defs/all-defs/ProSeDirectCommunication.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ProSeDirectCommunication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_ProSeDirectCommunication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ProSeDirectCommunication_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/ProSeDirectCommunication.h b/asn1c_defs/all-defs/ProSeDirectCommunication.h new file mode 100644 index 0000000..2edfbae --- /dev/null +++ b/asn1c_defs/all-defs/ProSeDirectCommunication.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ProSeDirectCommunication_H_ +#define _ProSeDirectCommunication_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/ProSeDirectDiscovery.c b/asn1c_defs/all-defs/ProSeDirectDiscovery.c new file mode 100644 index 0000000..ee9e800 --- /dev/null +++ b/asn1c_defs/all-defs/ProSeDirectDiscovery.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ProSeDirectDiscovery.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_ProSeDirectDiscovery_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ProSeDirectDiscovery_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/ProSeDirectDiscovery.h b/asn1c_defs/all-defs/ProSeDirectDiscovery.h new file mode 100644 index 0000000..ec054c8 --- /dev/null +++ b/asn1c_defs/all-defs/ProSeDirectDiscovery.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ProSeDirectDiscovery_H_ +#define _ProSeDirectDiscovery_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/ProSeUEtoNetworkRelaying.c b/asn1c_defs/all-defs/ProSeUEtoNetworkRelaying.c new file mode 100644 index 0000000..555cef8 --- /dev/null +++ b/asn1c_defs/all-defs/ProSeUEtoNetworkRelaying.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ProSeUEtoNetworkRelaying.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_ProSeUEtoNetworkRelaying_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ProSeUEtoNetworkRelaying_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/ProSeUEtoNetworkRelaying.h b/asn1c_defs/all-defs/ProSeUEtoNetworkRelaying.h new file mode 100644 index 0000000..461fade --- /dev/null +++ b/asn1c_defs/all-defs/ProSeUEtoNetworkRelaying.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ProSeUEtoNetworkRelaying_H_ +#define _ProSeUEtoNetworkRelaying_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/ProcedureCode.c b/asn1c_defs/all-defs/ProcedureCode.c new file mode 100644 index 0000000..c368c61 --- /dev/null +++ b/asn1c_defs/all-defs/ProcedureCode.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-CommonDataTypes" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_ProcedureCode_constr_1, ProcedureCode_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/ProcedureCode.h b/asn1c_defs/all-defs/ProcedureCode.h new file mode 100644 index 0000000..a343742 --- /dev/null +++ b/asn1c_defs/all-defs/ProcedureCode.h @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-CommonDataTypes" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ProcedureCode_H_ +#define _ProcedureCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/ProtectedEUTRAResourceIndication.c b/asn1c_defs/all-defs/ProtectedEUTRAResourceIndication.c new file mode 100644 index 0000000..0fbfc65 --- /dev/null +++ b/asn1c_defs/all-defs/ProtectedEUTRAResourceIndication.c @@ -0,0 +1,183 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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_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, + { 0, &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, + { 0, &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, + { 0, &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_8231P180, + 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/asn1c_defs/all-defs/ProtectedEUTRAResourceIndication.h b/asn1c_defs/all-defs/ProtectedEUTRAResourceIndication.h new file mode 100644 index 0000000..4e534a3 --- /dev/null +++ b/asn1c_defs/all-defs/ProtectedEUTRAResourceIndication.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ProtectedEUTRAResourceIndication_H_ +#define _ProtectedEUTRAResourceIndication_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ProtectedResourceList.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/ProtectedFootprintTimePattern.c b/asn1c_defs/all-defs/ProtectedFootprintTimePattern.c new file mode 100644 index 0000000..1329d0d --- /dev/null +++ b/asn1c_defs/all-defs/ProtectedFootprintTimePattern.c @@ -0,0 +1,133 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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, + { 0, &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, + { 0, &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_8231P181, + 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/asn1c_defs/all-defs/ProtectedFootprintTimePattern.h b/asn1c_defs/all-defs/ProtectedFootprintTimePattern.h new file mode 100644 index 0000000..005b8c1 --- /dev/null +++ b/asn1c_defs/all-defs/ProtectedFootprintTimePattern.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ProtectedFootprintTimePattern_H_ +#define _ProtectedFootprintTimePattern_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ProtectedResourceList-Item.c b/asn1c_defs/all-defs/ProtectedResourceList-Item.c new file mode 100644 index 0000000..4be3f01 --- /dev/null +++ b/asn1c_defs/all-defs/ProtectedResourceList-Item.c @@ -0,0 +1,165 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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, + { 0, &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, + { 0, &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_8231P182, + 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/asn1c_defs/all-defs/ProtectedResourceList-Item.h b/asn1c_defs/all-defs/ProtectedResourceList-Item.h new file mode 100644 index 0000000..7de4ad2 --- /dev/null +++ b/asn1c_defs/all-defs/ProtectedResourceList-Item.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ProtectedResourceList_Item_H_ +#define _ProtectedResourceList_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ResourceType.h" +#include +#include "ProtectedFootprintTimePattern.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/ProtectedResourceList.c b/asn1c_defs/all-defs/ProtectedResourceList.c new file mode 100644 index 0000000..6a7c411 --- /dev/null +++ b/asn1c_defs/all-defs/ProtectedResourceList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ProtectedResourceList.h" + +#include "ProtectedResourceList-Item.h" +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 */ + { 0, &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/asn1c_defs/all-defs/ProtectedResourceList.h b/asn1c_defs/all-defs/ProtectedResourceList.h new file mode 100644 index 0000000..3f7809f --- /dev/null +++ b/asn1c_defs/all-defs/ProtectedResourceList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ProtectedResourceList_H_ +#define _ProtectedResourceList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ProtocolExtensionContainer.c b/asn1c_defs/all-defs/ProtocolExtensionContainer.c new file mode 100644 index 0000000..fc809bd --- /dev/null +++ b/asn1c_defs/all-defs/ProtocolExtensionContainer.c @@ -0,0 +1,8930 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-Containers" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ProtocolExtensionContainer.h" + +#include "ProtocolExtensionField.h" +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P0_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_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P1_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P2_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P3_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P4_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P5_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P6_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P7_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P8_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P9_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P10_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P11_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P12_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P13_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P14_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P15_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P16_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P17_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P18_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P19_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P20_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P21_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P22_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P23_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P24_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P25_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P26_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P27_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P28_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P29_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P30_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P31_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P32_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P33_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P34_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P35_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P36_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P37_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P38_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P39_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P40_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P41_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P42_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P43_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P44_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P45_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P46_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P47_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P48_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P49_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P50_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P51_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P52_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P53_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P54_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P55_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P56_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P57_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P58_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P59_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P60_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P61_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P62_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P63_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P64_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P65_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P66_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P67_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P68_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P69_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P70_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P71_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P72_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P73_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P74_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P75_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P76_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P77_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P78_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P79_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P80_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P81_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P82_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P83_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P84_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P85_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P86_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P87_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P88_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P89_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P90_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P91_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P92_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P93_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P94_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P95_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P96_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P97_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P98_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P99_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P100_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P101_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P102_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P103_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P104_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P105_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P106_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P107_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P108_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P109_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P110_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P111_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P112_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P113_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P114_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P115_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P116_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P117_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P118_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P119_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P120_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P121_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P122_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P123_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P124_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P125_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P126_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P127_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P128_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P129_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P130_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P131_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P132_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P133_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P134_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P135_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P136_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P137_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P138_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P139_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P140_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P141_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P142_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P143_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P144_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P145_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P146_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P147_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P148_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P149_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P150_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P151_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P152_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P153_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P154_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P155_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P156_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P157_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P158_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P159_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P160_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P161_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P162_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P163_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P164_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P165_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P166_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P167_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P168_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P169_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P170_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P171_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P172_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P173_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P174_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P175_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P176_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P177_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P178_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P179_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P180_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P181_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P182_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P183_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P184_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P185_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P186_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P187_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P188_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P189_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P190_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P191_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P192_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P193_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P194_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P195_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P196_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P197_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P198_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P199_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P200_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P201_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P202_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P203_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P204_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P205_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P206_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P207_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P208_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P209_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P210_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P211_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P212_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P213_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P214_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P215_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P216_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P217_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P218_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P219_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P220_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P221_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P222_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_8231P0_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_8231P0_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P0_specs_1 = { + sizeof(struct ProtocolExtensionContainer_8231P0), + offsetof(struct ProtocolExtensionContainer_8231P0, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P0 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P0_tags_1, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P0_tags_1) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P0_tags_1[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P0_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P0_tags_1) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P0_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P0_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P0_1, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P0_specs_1 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P1_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_8231P1_tags_3[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P1_specs_3 = { + sizeof(struct ProtocolExtensionContainer_8231P1), + offsetof(struct ProtocolExtensionContainer_8231P1, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P1 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P1_tags_3, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P1_tags_3) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P1_tags_3[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P1_tags_3, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P1_tags_3) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P1_tags_3[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P1_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P1_3, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P1_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P2_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_8231P2_tags_5[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P2_specs_5 = { + sizeof(struct ProtocolExtensionContainer_8231P2), + offsetof(struct ProtocolExtensionContainer_8231P2, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P2 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P2_tags_5, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P2_tags_5) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P2_tags_5[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P2_tags_5, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P2_tags_5) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P2_tags_5[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P2_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P2_5, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P2_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P3_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_8231P3_tags_7[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P3_specs_7 = { + sizeof(struct ProtocolExtensionContainer_8231P3), + offsetof(struct ProtocolExtensionContainer_8231P3, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P3 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P3_tags_7, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P3_tags_7) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P3_tags_7[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P3_tags_7, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P3_tags_7) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P3_tags_7[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P3_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P3_7, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P3_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P4_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_8231P4_tags_9[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P4_specs_9 = { + sizeof(struct ProtocolExtensionContainer_8231P4), + offsetof(struct ProtocolExtensionContainer_8231P4, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P4 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P4_tags_9, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P4_tags_9) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P4_tags_9[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P4_tags_9, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P4_tags_9) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P4_tags_9[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P4_constr_9, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P4_9, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P4_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P5_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_8231P5_tags_11[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P5_specs_11 = { + sizeof(struct ProtocolExtensionContainer_8231P5), + offsetof(struct ProtocolExtensionContainer_8231P5, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P5 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P5_tags_11, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P5_tags_11) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P5_tags_11[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P5_tags_11, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P5_tags_11) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P5_tags_11[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P5_constr_11, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P5_11, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P5_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P6_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_8231P6_tags_13[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P6_specs_13 = { + sizeof(struct ProtocolExtensionContainer_8231P6), + offsetof(struct ProtocolExtensionContainer_8231P6, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P6 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P6_tags_13, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P6_tags_13) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P6_tags_13[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P6_tags_13, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P6_tags_13) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P6_tags_13[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P6_constr_13, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P6_13, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P6_specs_13 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P7_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_8231P7_tags_15[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P7_specs_15 = { + sizeof(struct ProtocolExtensionContainer_8231P7), + offsetof(struct ProtocolExtensionContainer_8231P7, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P7 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P7_tags_15, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P7_tags_15) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P7_tags_15[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P7_tags_15, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P7_tags_15) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P7_tags_15[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P7_constr_15, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P7_15, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P7_specs_15 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P8_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_8231P8_tags_17[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P8_specs_17 = { + sizeof(struct ProtocolExtensionContainer_8231P8), + offsetof(struct ProtocolExtensionContainer_8231P8, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P8 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P8_tags_17, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P8_tags_17) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P8_tags_17[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P8_tags_17, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P8_tags_17) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P8_tags_17[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P8_constr_17, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P8_17, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P8_specs_17 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P9_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_8231P9_tags_19[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P9_specs_19 = { + sizeof(struct ProtocolExtensionContainer_8231P9), + offsetof(struct ProtocolExtensionContainer_8231P9, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P9 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P9_tags_19, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P9_tags_19) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P9_tags_19[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P9_tags_19, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P9_tags_19) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P9_tags_19[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P9_constr_19, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P9_19, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P9_specs_19 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P10_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_8231P10_tags_21[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P10_specs_21 = { + sizeof(struct ProtocolExtensionContainer_8231P10), + offsetof(struct ProtocolExtensionContainer_8231P10, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P10 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P10_tags_21, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P10_tags_21) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P10_tags_21[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P10_tags_21, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P10_tags_21) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P10_tags_21[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P10_constr_21, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P10_21, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P10_specs_21 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P11_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_8231P11_tags_23[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P11_specs_23 = { + sizeof(struct ProtocolExtensionContainer_8231P11), + offsetof(struct ProtocolExtensionContainer_8231P11, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P11 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P11_tags_23, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P11_tags_23) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P11_tags_23[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P11_tags_23, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P11_tags_23) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P11_tags_23[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P11_constr_23, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P11_23, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P11_specs_23 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P12_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_8231P12_tags_25[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P12_specs_25 = { + sizeof(struct ProtocolExtensionContainer_8231P12), + offsetof(struct ProtocolExtensionContainer_8231P12, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P12 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P12_tags_25, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P12_tags_25) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P12_tags_25[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P12_tags_25, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P12_tags_25) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P12_tags_25[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P12_constr_25, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P12_25, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P12_specs_25 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P13_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_8231P13_tags_27[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P13_specs_27 = { + sizeof(struct ProtocolExtensionContainer_8231P13), + offsetof(struct ProtocolExtensionContainer_8231P13, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P13 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P13_tags_27, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P13_tags_27) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P13_tags_27[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P13_tags_27, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P13_tags_27) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P13_tags_27[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P13_constr_27, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P13_27, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P13_specs_27 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P14_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_8231P14_tags_29[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P14_specs_29 = { + sizeof(struct ProtocolExtensionContainer_8231P14), + offsetof(struct ProtocolExtensionContainer_8231P14, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P14 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P14_tags_29, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P14_tags_29) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P14_tags_29[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P14_tags_29, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P14_tags_29) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P14_tags_29[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P14_constr_29, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P14_29, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P14_specs_29 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P15_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_8231P15_tags_31[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P15_specs_31 = { + sizeof(struct ProtocolExtensionContainer_8231P15), + offsetof(struct ProtocolExtensionContainer_8231P15, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P15 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P15_tags_31, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P15_tags_31) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P15_tags_31[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P15_tags_31, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P15_tags_31) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P15_tags_31[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P15_constr_31, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P15_31, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P15_specs_31 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P16_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_8231P16_tags_33[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P16_specs_33 = { + sizeof(struct ProtocolExtensionContainer_8231P16), + offsetof(struct ProtocolExtensionContainer_8231P16, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P16 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P16_tags_33, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P16_tags_33) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P16_tags_33[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P16_tags_33, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P16_tags_33) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P16_tags_33[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P16_constr_33, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P16_33, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P16_specs_33 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P17_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_8231P17_tags_35[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P17_specs_35 = { + sizeof(struct ProtocolExtensionContainer_8231P17), + offsetof(struct ProtocolExtensionContainer_8231P17, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P17 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P17_tags_35, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P17_tags_35) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P17_tags_35[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P17_tags_35, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P17_tags_35) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P17_tags_35[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P17_constr_35, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P17_35, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P17_specs_35 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P18_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_8231P18_tags_37[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P18_specs_37 = { + sizeof(struct ProtocolExtensionContainer_8231P18), + offsetof(struct ProtocolExtensionContainer_8231P18, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P18 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P18_tags_37, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P18_tags_37) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P18_tags_37[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P18_tags_37, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P18_tags_37) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P18_tags_37[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P18_constr_37, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P18_37, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P18_specs_37 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P19_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_8231P19_tags_39[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P19_specs_39 = { + sizeof(struct ProtocolExtensionContainer_8231P19), + offsetof(struct ProtocolExtensionContainer_8231P19, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P19 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P19_tags_39, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P19_tags_39) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P19_tags_39[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P19_tags_39, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P19_tags_39) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P19_tags_39[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P19_constr_39, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P19_39, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P19_specs_39 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P20_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_8231P20_tags_41[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P20_specs_41 = { + sizeof(struct ProtocolExtensionContainer_8231P20), + offsetof(struct ProtocolExtensionContainer_8231P20, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P20 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P20_tags_41, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P20_tags_41) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P20_tags_41[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P20_tags_41, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P20_tags_41) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P20_tags_41[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P20_constr_41, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P20_41, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P20_specs_41 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P21_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_8231P21_tags_43[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P21_specs_43 = { + sizeof(struct ProtocolExtensionContainer_8231P21), + offsetof(struct ProtocolExtensionContainer_8231P21, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P21 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P21_tags_43, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P21_tags_43) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P21_tags_43[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P21_tags_43, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P21_tags_43) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P21_tags_43[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P21_constr_43, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P21_43, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P21_specs_43 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P22_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_8231P22_tags_45[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P22_specs_45 = { + sizeof(struct ProtocolExtensionContainer_8231P22), + offsetof(struct ProtocolExtensionContainer_8231P22, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P22 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P22_tags_45, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P22_tags_45) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P22_tags_45[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P22_tags_45, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P22_tags_45) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P22_tags_45[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P22_constr_45, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P22_45, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P22_specs_45 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P23_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_8231P23_tags_47[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P23_specs_47 = { + sizeof(struct ProtocolExtensionContainer_8231P23), + offsetof(struct ProtocolExtensionContainer_8231P23, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P23 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P23_tags_47, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P23_tags_47) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P23_tags_47[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P23_tags_47, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P23_tags_47) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P23_tags_47[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P23_constr_47, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P23_47, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P23_specs_47 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P24_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_8231P24_tags_49[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P24_specs_49 = { + sizeof(struct ProtocolExtensionContainer_8231P24), + offsetof(struct ProtocolExtensionContainer_8231P24, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P24 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P24_tags_49, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P24_tags_49) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P24_tags_49[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P24_tags_49, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P24_tags_49) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P24_tags_49[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P24_constr_49, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P24_49, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P24_specs_49 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P25_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_8231P25_tags_51[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P25_specs_51 = { + sizeof(struct ProtocolExtensionContainer_8231P25), + offsetof(struct ProtocolExtensionContainer_8231P25, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P25 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P25_tags_51, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P25_tags_51) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P25_tags_51[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P25_tags_51, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P25_tags_51) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P25_tags_51[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P25_constr_51, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P25_51, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P25_specs_51 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P26_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_8231P26_tags_53[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P26_specs_53 = { + sizeof(struct ProtocolExtensionContainer_8231P26), + offsetof(struct ProtocolExtensionContainer_8231P26, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P26 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P26_tags_53, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P26_tags_53) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P26_tags_53[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P26_tags_53, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P26_tags_53) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P26_tags_53[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P26_constr_53, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P26_53, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P26_specs_53 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P27_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_8231P27_tags_55[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P27_specs_55 = { + sizeof(struct ProtocolExtensionContainer_8231P27), + offsetof(struct ProtocolExtensionContainer_8231P27, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P27 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P27_tags_55, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P27_tags_55) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P27_tags_55[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P27_tags_55, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P27_tags_55) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P27_tags_55[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P27_constr_55, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P27_55, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P27_specs_55 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P28_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_8231P28_tags_57[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P28_specs_57 = { + sizeof(struct ProtocolExtensionContainer_8231P28), + offsetof(struct ProtocolExtensionContainer_8231P28, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P28 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P28_tags_57, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P28_tags_57) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P28_tags_57[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P28_tags_57, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P28_tags_57) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P28_tags_57[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P28_constr_57, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P28_57, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P28_specs_57 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P29_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_8231P29_tags_59[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P29_specs_59 = { + sizeof(struct ProtocolExtensionContainer_8231P29), + offsetof(struct ProtocolExtensionContainer_8231P29, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P29 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P29_tags_59, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P29_tags_59) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P29_tags_59[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P29_tags_59, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P29_tags_59) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P29_tags_59[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P29_constr_59, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P29_59, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P29_specs_59 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P30_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_8231P30_tags_61[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P30_specs_61 = { + sizeof(struct ProtocolExtensionContainer_8231P30), + offsetof(struct ProtocolExtensionContainer_8231P30, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P30 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P30_tags_61, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P30_tags_61) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P30_tags_61[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P30_tags_61, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P30_tags_61) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P30_tags_61[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P30_constr_61, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P30_61, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P30_specs_61 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P31_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_8231P31_tags_63[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P31_specs_63 = { + sizeof(struct ProtocolExtensionContainer_8231P31), + offsetof(struct ProtocolExtensionContainer_8231P31, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P31 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P31_tags_63, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P31_tags_63) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P31_tags_63[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P31_tags_63, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P31_tags_63) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P31_tags_63[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P31_constr_63, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P31_63, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P31_specs_63 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P32_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_8231P32_tags_65[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P32_specs_65 = { + sizeof(struct ProtocolExtensionContainer_8231P32), + offsetof(struct ProtocolExtensionContainer_8231P32, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P32 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P32_tags_65, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P32_tags_65) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P32_tags_65[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P32_tags_65, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P32_tags_65) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P32_tags_65[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P32_constr_65, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P32_65, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P32_specs_65 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P33_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_8231P33_tags_67[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P33_specs_67 = { + sizeof(struct ProtocolExtensionContainer_8231P33), + offsetof(struct ProtocolExtensionContainer_8231P33, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P33 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P33_tags_67, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P33_tags_67) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P33_tags_67[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P33_tags_67, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P33_tags_67) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P33_tags_67[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P33_constr_67, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P33_67, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P33_specs_67 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P34_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_8231P34_tags_69[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P34_specs_69 = { + sizeof(struct ProtocolExtensionContainer_8231P34), + offsetof(struct ProtocolExtensionContainer_8231P34, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P34 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P34_tags_69, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P34_tags_69) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P34_tags_69[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P34_tags_69, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P34_tags_69) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P34_tags_69[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P34_constr_69, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P34_69, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P34_specs_69 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P35_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_8231P35_tags_71[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P35_specs_71 = { + sizeof(struct ProtocolExtensionContainer_8231P35), + offsetof(struct ProtocolExtensionContainer_8231P35, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P35 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P35_tags_71, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P35_tags_71) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P35_tags_71[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P35_tags_71, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P35_tags_71) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P35_tags_71[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P35_constr_71, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P35_71, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P35_specs_71 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P36_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_8231P36_tags_73[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P36_specs_73 = { + sizeof(struct ProtocolExtensionContainer_8231P36), + offsetof(struct ProtocolExtensionContainer_8231P36, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P36 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P36_tags_73, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P36_tags_73) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P36_tags_73[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P36_tags_73, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P36_tags_73) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P36_tags_73[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P36_constr_73, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P36_73, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P36_specs_73 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P37_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_8231P37_tags_75[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P37_specs_75 = { + sizeof(struct ProtocolExtensionContainer_8231P37), + offsetof(struct ProtocolExtensionContainer_8231P37, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P37 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P37_tags_75, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P37_tags_75) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P37_tags_75[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P37_tags_75, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P37_tags_75) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P37_tags_75[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P37_constr_75, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P37_75, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P37_specs_75 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P38_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_8231P38_tags_77[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P38_specs_77 = { + sizeof(struct ProtocolExtensionContainer_8231P38), + offsetof(struct ProtocolExtensionContainer_8231P38, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P38 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P38_tags_77, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P38_tags_77) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P38_tags_77[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P38_tags_77, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P38_tags_77) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P38_tags_77[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P38_constr_77, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P38_77, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P38_specs_77 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P39_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_8231P39_tags_79[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P39_specs_79 = { + sizeof(struct ProtocolExtensionContainer_8231P39), + offsetof(struct ProtocolExtensionContainer_8231P39, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P39 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P39_tags_79, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P39_tags_79) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P39_tags_79[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P39_tags_79, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P39_tags_79) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P39_tags_79[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P39_constr_79, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P39_79, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P39_specs_79 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P40_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_8231P40_tags_81[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P40_specs_81 = { + sizeof(struct ProtocolExtensionContainer_8231P40), + offsetof(struct ProtocolExtensionContainer_8231P40, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P40 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P40_tags_81, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P40_tags_81) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P40_tags_81[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P40_tags_81, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P40_tags_81) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P40_tags_81[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P40_constr_81, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P40_81, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P40_specs_81 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P41_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_8231P41_tags_83[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P41_specs_83 = { + sizeof(struct ProtocolExtensionContainer_8231P41), + offsetof(struct ProtocolExtensionContainer_8231P41, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P41 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P41_tags_83, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P41_tags_83) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P41_tags_83[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P41_tags_83, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P41_tags_83) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P41_tags_83[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P41_constr_83, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P41_83, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P41_specs_83 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P42_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_8231P42_tags_85[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P42_specs_85 = { + sizeof(struct ProtocolExtensionContainer_8231P42), + offsetof(struct ProtocolExtensionContainer_8231P42, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P42 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P42_tags_85, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P42_tags_85) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P42_tags_85[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P42_tags_85, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P42_tags_85) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P42_tags_85[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P42_constr_85, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P42_85, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P42_specs_85 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P43_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_8231P43_tags_87[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P43_specs_87 = { + sizeof(struct ProtocolExtensionContainer_8231P43), + offsetof(struct ProtocolExtensionContainer_8231P43, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P43 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P43_tags_87, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P43_tags_87) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P43_tags_87[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P43_tags_87, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P43_tags_87) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P43_tags_87[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P43_constr_87, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P43_87, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P43_specs_87 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P44_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_8231P44_tags_89[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P44_specs_89 = { + sizeof(struct ProtocolExtensionContainer_8231P44), + offsetof(struct ProtocolExtensionContainer_8231P44, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P44 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P44_tags_89, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P44_tags_89) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P44_tags_89[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P44_tags_89, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P44_tags_89) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P44_tags_89[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P44_constr_89, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P44_89, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P44_specs_89 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P45_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_8231P45_tags_91[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P45_specs_91 = { + sizeof(struct ProtocolExtensionContainer_8231P45), + offsetof(struct ProtocolExtensionContainer_8231P45, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P45 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P45_tags_91, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P45_tags_91) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P45_tags_91[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P45_tags_91, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P45_tags_91) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P45_tags_91[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P45_constr_91, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P45_91, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P45_specs_91 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P46_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_8231P46_tags_93[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P46_specs_93 = { + sizeof(struct ProtocolExtensionContainer_8231P46), + offsetof(struct ProtocolExtensionContainer_8231P46, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P46 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P46_tags_93, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P46_tags_93) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P46_tags_93[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P46_tags_93, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P46_tags_93) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P46_tags_93[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P46_constr_93, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P46_93, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P46_specs_93 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P47_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_8231P47_tags_95[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P47_specs_95 = { + sizeof(struct ProtocolExtensionContainer_8231P47), + offsetof(struct ProtocolExtensionContainer_8231P47, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P47 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P47_tags_95, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P47_tags_95) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P47_tags_95[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P47_tags_95, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P47_tags_95) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P47_tags_95[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P47_constr_95, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P47_95, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P47_specs_95 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P48_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_8231P48_tags_97[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P48_specs_97 = { + sizeof(struct ProtocolExtensionContainer_8231P48), + offsetof(struct ProtocolExtensionContainer_8231P48, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P48 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P48_tags_97, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P48_tags_97) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P48_tags_97[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P48_tags_97, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P48_tags_97) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P48_tags_97[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P48_constr_97, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P48_97, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P48_specs_97 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P49_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_8231P49_tags_99[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P49_specs_99 = { + sizeof(struct ProtocolExtensionContainer_8231P49), + offsetof(struct ProtocolExtensionContainer_8231P49, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P49 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P49_tags_99, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P49_tags_99) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P49_tags_99[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P49_tags_99, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P49_tags_99) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P49_tags_99[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P49_constr_99, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P49_99, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P49_specs_99 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P50_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_8231P50_tags_101[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P50_specs_101 = { + sizeof(struct ProtocolExtensionContainer_8231P50), + offsetof(struct ProtocolExtensionContainer_8231P50, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P50 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P50_tags_101, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P50_tags_101) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P50_tags_101[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P50_tags_101, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P50_tags_101) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P50_tags_101[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P50_constr_101, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P50_101, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P50_specs_101 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P51_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_8231P51_tags_103[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P51_specs_103 = { + sizeof(struct ProtocolExtensionContainer_8231P51), + offsetof(struct ProtocolExtensionContainer_8231P51, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P51 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P51_tags_103, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P51_tags_103) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P51_tags_103[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P51_tags_103, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P51_tags_103) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P51_tags_103[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P51_constr_103, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P51_103, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P51_specs_103 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P52_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_8231P52_tags_105[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P52_specs_105 = { + sizeof(struct ProtocolExtensionContainer_8231P52), + offsetof(struct ProtocolExtensionContainer_8231P52, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P52 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P52_tags_105, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P52_tags_105) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P52_tags_105[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P52_tags_105, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P52_tags_105) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P52_tags_105[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P52_constr_105, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P52_105, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P52_specs_105 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P53_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_8231P53_tags_107[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P53_specs_107 = { + sizeof(struct ProtocolExtensionContainer_8231P53), + offsetof(struct ProtocolExtensionContainer_8231P53, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P53 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P53_tags_107, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P53_tags_107) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P53_tags_107[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P53_tags_107, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P53_tags_107) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P53_tags_107[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P53_constr_107, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P53_107, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P53_specs_107 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P54_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_8231P54_tags_109[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P54_specs_109 = { + sizeof(struct ProtocolExtensionContainer_8231P54), + offsetof(struct ProtocolExtensionContainer_8231P54, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P54 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P54_tags_109, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P54_tags_109) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P54_tags_109[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P54_tags_109, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P54_tags_109) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P54_tags_109[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P54_constr_109, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P54_109, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P54_specs_109 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P55_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_8231P55_tags_111[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P55_specs_111 = { + sizeof(struct ProtocolExtensionContainer_8231P55), + offsetof(struct ProtocolExtensionContainer_8231P55, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P55 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P55_tags_111, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P55_tags_111) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P55_tags_111[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P55_tags_111, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P55_tags_111) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P55_tags_111[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P55_constr_111, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P55_111, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P55_specs_111 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P56_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_8231P56_tags_113[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P56_specs_113 = { + sizeof(struct ProtocolExtensionContainer_8231P56), + offsetof(struct ProtocolExtensionContainer_8231P56, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P56 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P56_tags_113, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P56_tags_113) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P56_tags_113[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P56_tags_113, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P56_tags_113) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P56_tags_113[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P56_constr_113, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P56_113, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P56_specs_113 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P57_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_8231P57_tags_115[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P57_specs_115 = { + sizeof(struct ProtocolExtensionContainer_8231P57), + offsetof(struct ProtocolExtensionContainer_8231P57, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P57 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P57_tags_115, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P57_tags_115) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P57_tags_115[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P57_tags_115, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P57_tags_115) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P57_tags_115[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P57_constr_115, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P57_115, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P57_specs_115 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P58_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_8231P58_tags_117[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P58_specs_117 = { + sizeof(struct ProtocolExtensionContainer_8231P58), + offsetof(struct ProtocolExtensionContainer_8231P58, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P58 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P58_tags_117, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P58_tags_117) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P58_tags_117[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P58_tags_117, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P58_tags_117) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P58_tags_117[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P58_constr_117, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P58_117, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P58_specs_117 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P59_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_8231P59_tags_119[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P59_specs_119 = { + sizeof(struct ProtocolExtensionContainer_8231P59), + offsetof(struct ProtocolExtensionContainer_8231P59, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P59 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P59_tags_119, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P59_tags_119) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P59_tags_119[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P59_tags_119, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P59_tags_119) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P59_tags_119[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P59_constr_119, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P59_119, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P59_specs_119 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P60_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_8231P60_tags_121[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P60_specs_121 = { + sizeof(struct ProtocolExtensionContainer_8231P60), + offsetof(struct ProtocolExtensionContainer_8231P60, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P60 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P60_tags_121, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P60_tags_121) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P60_tags_121[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P60_tags_121, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P60_tags_121) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P60_tags_121[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P60_constr_121, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P60_121, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P60_specs_121 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P61_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_8231P61_tags_123[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P61_specs_123 = { + sizeof(struct ProtocolExtensionContainer_8231P61), + offsetof(struct ProtocolExtensionContainer_8231P61, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P61 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P61_tags_123, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P61_tags_123) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P61_tags_123[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P61_tags_123, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P61_tags_123) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P61_tags_123[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P61_constr_123, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P61_123, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P61_specs_123 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P62_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_8231P62_tags_125[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P62_specs_125 = { + sizeof(struct ProtocolExtensionContainer_8231P62), + offsetof(struct ProtocolExtensionContainer_8231P62, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P62 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P62_tags_125, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P62_tags_125) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P62_tags_125[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P62_tags_125, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P62_tags_125) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P62_tags_125[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P62_constr_125, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P62_125, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P62_specs_125 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P63_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_8231P63_tags_127[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P63_specs_127 = { + sizeof(struct ProtocolExtensionContainer_8231P63), + offsetof(struct ProtocolExtensionContainer_8231P63, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P63 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P63_tags_127, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P63_tags_127) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P63_tags_127[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P63_tags_127, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P63_tags_127) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P63_tags_127[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P63_constr_127, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P63_127, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P63_specs_127 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P64_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_8231P64_tags_129[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P64_specs_129 = { + sizeof(struct ProtocolExtensionContainer_8231P64), + offsetof(struct ProtocolExtensionContainer_8231P64, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P64 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P64_tags_129, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P64_tags_129) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P64_tags_129[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P64_tags_129, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P64_tags_129) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P64_tags_129[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P64_constr_129, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P64_129, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P64_specs_129 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P65_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_8231P65_tags_131[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P65_specs_131 = { + sizeof(struct ProtocolExtensionContainer_8231P65), + offsetof(struct ProtocolExtensionContainer_8231P65, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P65 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P65_tags_131, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P65_tags_131) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P65_tags_131[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P65_tags_131, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P65_tags_131) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P65_tags_131[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P65_constr_131, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P65_131, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P65_specs_131 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P66_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_8231P66_tags_133[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P66_specs_133 = { + sizeof(struct ProtocolExtensionContainer_8231P66), + offsetof(struct ProtocolExtensionContainer_8231P66, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P66 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P66_tags_133, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P66_tags_133) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P66_tags_133[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P66_tags_133, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P66_tags_133) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P66_tags_133[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P66_constr_133, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P66_133, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P66_specs_133 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P67_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_8231P67_tags_135[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P67_specs_135 = { + sizeof(struct ProtocolExtensionContainer_8231P67), + offsetof(struct ProtocolExtensionContainer_8231P67, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P67 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P67_tags_135, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P67_tags_135) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P67_tags_135[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P67_tags_135, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P67_tags_135) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P67_tags_135[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P67_constr_135, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P67_135, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P67_specs_135 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P68_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_8231P68_tags_137[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P68_specs_137 = { + sizeof(struct ProtocolExtensionContainer_8231P68), + offsetof(struct ProtocolExtensionContainer_8231P68, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P68 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P68_tags_137, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P68_tags_137) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P68_tags_137[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P68_tags_137, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P68_tags_137) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P68_tags_137[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P68_constr_137, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P68_137, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P68_specs_137 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P69_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_8231P69_tags_139[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P69_specs_139 = { + sizeof(struct ProtocolExtensionContainer_8231P69), + offsetof(struct ProtocolExtensionContainer_8231P69, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P69 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P69_tags_139, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P69_tags_139) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P69_tags_139[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P69_tags_139, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P69_tags_139) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P69_tags_139[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P69_constr_139, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P69_139, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P69_specs_139 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P70_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_8231P70_tags_141[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P70_specs_141 = { + sizeof(struct ProtocolExtensionContainer_8231P70), + offsetof(struct ProtocolExtensionContainer_8231P70, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P70 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P70_tags_141, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P70_tags_141) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P70_tags_141[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P70_tags_141, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P70_tags_141) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P70_tags_141[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P70_constr_141, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P70_141, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P70_specs_141 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P71_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_8231P71_tags_143[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P71_specs_143 = { + sizeof(struct ProtocolExtensionContainer_8231P71), + offsetof(struct ProtocolExtensionContainer_8231P71, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P71 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P71_tags_143, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P71_tags_143) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P71_tags_143[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P71_tags_143, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P71_tags_143) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P71_tags_143[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P71_constr_143, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P71_143, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P71_specs_143 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P72_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_8231P72_tags_145[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P72_specs_145 = { + sizeof(struct ProtocolExtensionContainer_8231P72), + offsetof(struct ProtocolExtensionContainer_8231P72, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P72 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P72_tags_145, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P72_tags_145) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P72_tags_145[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P72_tags_145, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P72_tags_145) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P72_tags_145[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P72_constr_145, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P72_145, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P72_specs_145 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P73_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_8231P73_tags_147[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P73_specs_147 = { + sizeof(struct ProtocolExtensionContainer_8231P73), + offsetof(struct ProtocolExtensionContainer_8231P73, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P73 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P73_tags_147, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P73_tags_147) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P73_tags_147[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P73_tags_147, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P73_tags_147) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P73_tags_147[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P73_constr_147, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P73_147, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P73_specs_147 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P74_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_8231P74_tags_149[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P74_specs_149 = { + sizeof(struct ProtocolExtensionContainer_8231P74), + offsetof(struct ProtocolExtensionContainer_8231P74, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P74 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P74_tags_149, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P74_tags_149) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P74_tags_149[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P74_tags_149, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P74_tags_149) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P74_tags_149[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P74_constr_149, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P74_149, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P74_specs_149 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P75_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_8231P75_tags_151[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P75_specs_151 = { + sizeof(struct ProtocolExtensionContainer_8231P75), + offsetof(struct ProtocolExtensionContainer_8231P75, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P75 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P75_tags_151, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P75_tags_151) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P75_tags_151[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P75_tags_151, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P75_tags_151) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P75_tags_151[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P75_constr_151, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P75_151, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P75_specs_151 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P76_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_8231P76_tags_153[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P76_specs_153 = { + sizeof(struct ProtocolExtensionContainer_8231P76), + offsetof(struct ProtocolExtensionContainer_8231P76, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P76 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P76_tags_153, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P76_tags_153) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P76_tags_153[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P76_tags_153, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P76_tags_153) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P76_tags_153[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P76_constr_153, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P76_153, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P76_specs_153 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P77_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_8231P77_tags_155[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P77_specs_155 = { + sizeof(struct ProtocolExtensionContainer_8231P77), + offsetof(struct ProtocolExtensionContainer_8231P77, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P77 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P77_tags_155, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P77_tags_155) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P77_tags_155[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P77_tags_155, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P77_tags_155) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P77_tags_155[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P77_constr_155, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P77_155, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P77_specs_155 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P78_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_8231P78_tags_157[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P78_specs_157 = { + sizeof(struct ProtocolExtensionContainer_8231P78), + offsetof(struct ProtocolExtensionContainer_8231P78, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P78 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P78_tags_157, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P78_tags_157) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P78_tags_157[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P78_tags_157, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P78_tags_157) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P78_tags_157[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P78_constr_157, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P78_157, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P78_specs_157 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P79_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_8231P79_tags_159[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P79_specs_159 = { + sizeof(struct ProtocolExtensionContainer_8231P79), + offsetof(struct ProtocolExtensionContainer_8231P79, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P79 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P79_tags_159, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P79_tags_159) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P79_tags_159[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P79_tags_159, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P79_tags_159) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P79_tags_159[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P79_constr_159, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P79_159, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P79_specs_159 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P80_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_8231P80_tags_161[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P80_specs_161 = { + sizeof(struct ProtocolExtensionContainer_8231P80), + offsetof(struct ProtocolExtensionContainer_8231P80, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P80 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P80_tags_161, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P80_tags_161) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P80_tags_161[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P80_tags_161, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P80_tags_161) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P80_tags_161[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P80_constr_161, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P80_161, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P80_specs_161 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P81_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_8231P81_tags_163[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P81_specs_163 = { + sizeof(struct ProtocolExtensionContainer_8231P81), + offsetof(struct ProtocolExtensionContainer_8231P81, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P81 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P81_tags_163, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P81_tags_163) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P81_tags_163[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P81_tags_163, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P81_tags_163) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P81_tags_163[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P81_constr_163, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P81_163, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P81_specs_163 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P82_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_8231P82_tags_165[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P82_specs_165 = { + sizeof(struct ProtocolExtensionContainer_8231P82), + offsetof(struct ProtocolExtensionContainer_8231P82, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P82 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P82_tags_165, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P82_tags_165) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P82_tags_165[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P82_tags_165, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P82_tags_165) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P82_tags_165[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P82_constr_165, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P82_165, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P82_specs_165 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P83_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_8231P83_tags_167[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P83_specs_167 = { + sizeof(struct ProtocolExtensionContainer_8231P83), + offsetof(struct ProtocolExtensionContainer_8231P83, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P83 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P83_tags_167, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P83_tags_167) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P83_tags_167[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P83_tags_167, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P83_tags_167) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P83_tags_167[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P83_constr_167, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P83_167, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P83_specs_167 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P84_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_8231P84_tags_169[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P84_specs_169 = { + sizeof(struct ProtocolExtensionContainer_8231P84), + offsetof(struct ProtocolExtensionContainer_8231P84, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P84 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P84_tags_169, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P84_tags_169) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P84_tags_169[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P84_tags_169, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P84_tags_169) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P84_tags_169[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P84_constr_169, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P84_169, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P84_specs_169 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P85_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_8231P85_tags_171[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P85_specs_171 = { + sizeof(struct ProtocolExtensionContainer_8231P85), + offsetof(struct ProtocolExtensionContainer_8231P85, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P85 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P85_tags_171, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P85_tags_171) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P85_tags_171[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P85_tags_171, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P85_tags_171) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P85_tags_171[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P85_constr_171, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P85_171, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P85_specs_171 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P86_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_8231P86_tags_173[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P86_specs_173 = { + sizeof(struct ProtocolExtensionContainer_8231P86), + offsetof(struct ProtocolExtensionContainer_8231P86, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P86 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P86_tags_173, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P86_tags_173) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P86_tags_173[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P86_tags_173, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P86_tags_173) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P86_tags_173[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P86_constr_173, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P86_173, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P86_specs_173 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P87_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_8231P87_tags_175[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P87_specs_175 = { + sizeof(struct ProtocolExtensionContainer_8231P87), + offsetof(struct ProtocolExtensionContainer_8231P87, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P87 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P87_tags_175, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P87_tags_175) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P87_tags_175[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P87_tags_175, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P87_tags_175) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P87_tags_175[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P87_constr_175, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P87_175, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P87_specs_175 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P88_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_8231P88_tags_177[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P88_specs_177 = { + sizeof(struct ProtocolExtensionContainer_8231P88), + offsetof(struct ProtocolExtensionContainer_8231P88, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P88 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P88_tags_177, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P88_tags_177) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P88_tags_177[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P88_tags_177, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P88_tags_177) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P88_tags_177[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P88_constr_177, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P88_177, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P88_specs_177 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P89_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_8231P89_tags_179[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P89_specs_179 = { + sizeof(struct ProtocolExtensionContainer_8231P89), + offsetof(struct ProtocolExtensionContainer_8231P89, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P89 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P89_tags_179, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P89_tags_179) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P89_tags_179[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P89_tags_179, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P89_tags_179) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P89_tags_179[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P89_constr_179, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P89_179, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P89_specs_179 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P90_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_8231P90_tags_181[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P90_specs_181 = { + sizeof(struct ProtocolExtensionContainer_8231P90), + offsetof(struct ProtocolExtensionContainer_8231P90, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P90 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P90_tags_181, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P90_tags_181) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P90_tags_181[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P90_tags_181, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P90_tags_181) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P90_tags_181[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P90_constr_181, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P90_181, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P90_specs_181 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P91_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_8231P91_tags_183[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P91_specs_183 = { + sizeof(struct ProtocolExtensionContainer_8231P91), + offsetof(struct ProtocolExtensionContainer_8231P91, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P91 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P91_tags_183, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P91_tags_183) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P91_tags_183[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P91_tags_183, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P91_tags_183) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P91_tags_183[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P91_constr_183, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P91_183, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P91_specs_183 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P92_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_8231P92_tags_185[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P92_specs_185 = { + sizeof(struct ProtocolExtensionContainer_8231P92), + offsetof(struct ProtocolExtensionContainer_8231P92, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P92 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P92_tags_185, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P92_tags_185) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P92_tags_185[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P92_tags_185, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P92_tags_185) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P92_tags_185[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P92_constr_185, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P92_185, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P92_specs_185 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P93_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_8231P93_tags_187[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P93_specs_187 = { + sizeof(struct ProtocolExtensionContainer_8231P93), + offsetof(struct ProtocolExtensionContainer_8231P93, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P93 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P93_tags_187, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P93_tags_187) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P93_tags_187[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P93_tags_187, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P93_tags_187) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P93_tags_187[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P93_constr_187, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P93_187, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P93_specs_187 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P94_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_8231P94_tags_189[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P94_specs_189 = { + sizeof(struct ProtocolExtensionContainer_8231P94), + offsetof(struct ProtocolExtensionContainer_8231P94, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P94 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P94_tags_189, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P94_tags_189) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P94_tags_189[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P94_tags_189, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P94_tags_189) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P94_tags_189[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P94_constr_189, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P94_189, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P94_specs_189 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P95_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_8231P95_tags_191[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P95_specs_191 = { + sizeof(struct ProtocolExtensionContainer_8231P95), + offsetof(struct ProtocolExtensionContainer_8231P95, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P95 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P95_tags_191, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P95_tags_191) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P95_tags_191[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P95_tags_191, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P95_tags_191) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P95_tags_191[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P95_constr_191, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P95_191, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P95_specs_191 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P96_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_8231P96_tags_193[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P96_specs_193 = { + sizeof(struct ProtocolExtensionContainer_8231P96), + offsetof(struct ProtocolExtensionContainer_8231P96, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P96 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P96_tags_193, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P96_tags_193) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P96_tags_193[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P96_tags_193, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P96_tags_193) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P96_tags_193[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P96_constr_193, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P96_193, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P96_specs_193 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P97_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_8231P97_tags_195[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P97_specs_195 = { + sizeof(struct ProtocolExtensionContainer_8231P97), + offsetof(struct ProtocolExtensionContainer_8231P97, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P97 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P97_tags_195, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P97_tags_195) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P97_tags_195[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P97_tags_195, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P97_tags_195) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P97_tags_195[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P97_constr_195, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P97_195, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P97_specs_195 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P98_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_8231P98_tags_197[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P98_specs_197 = { + sizeof(struct ProtocolExtensionContainer_8231P98), + offsetof(struct ProtocolExtensionContainer_8231P98, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P98 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P98_tags_197, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P98_tags_197) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P98_tags_197[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P98_tags_197, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P98_tags_197) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P98_tags_197[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P98_constr_197, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P98_197, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P98_specs_197 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P99_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_8231P99_tags_199[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P99_specs_199 = { + sizeof(struct ProtocolExtensionContainer_8231P99), + offsetof(struct ProtocolExtensionContainer_8231P99, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P99 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P99_tags_199, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P99_tags_199) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P99_tags_199[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P99_tags_199, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P99_tags_199) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P99_tags_199[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P99_constr_199, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P99_199, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P99_specs_199 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P100_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_8231P100_tags_201[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P100_specs_201 = { + sizeof(struct ProtocolExtensionContainer_8231P100), + offsetof(struct ProtocolExtensionContainer_8231P100, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P100 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P100_tags_201, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P100_tags_201) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P100_tags_201[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P100_tags_201, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P100_tags_201) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P100_tags_201[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P100_constr_201, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P100_201, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P100_specs_201 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P101_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_8231P101_tags_203[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P101_specs_203 = { + sizeof(struct ProtocolExtensionContainer_8231P101), + offsetof(struct ProtocolExtensionContainer_8231P101, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P101 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P101_tags_203, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P101_tags_203) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P101_tags_203[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P101_tags_203, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P101_tags_203) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P101_tags_203[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P101_constr_203, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P101_203, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P101_specs_203 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P102_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_8231P102_tags_205[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P102_specs_205 = { + sizeof(struct ProtocolExtensionContainer_8231P102), + offsetof(struct ProtocolExtensionContainer_8231P102, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P102 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P102_tags_205, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P102_tags_205) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P102_tags_205[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P102_tags_205, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P102_tags_205) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P102_tags_205[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P102_constr_205, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P102_205, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P102_specs_205 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P103_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_8231P103_tags_207[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P103_specs_207 = { + sizeof(struct ProtocolExtensionContainer_8231P103), + offsetof(struct ProtocolExtensionContainer_8231P103, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P103 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P103_tags_207, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P103_tags_207) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P103_tags_207[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P103_tags_207, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P103_tags_207) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P103_tags_207[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P103_constr_207, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P103_207, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P103_specs_207 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P104_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_8231P104_tags_209[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P104_specs_209 = { + sizeof(struct ProtocolExtensionContainer_8231P104), + offsetof(struct ProtocolExtensionContainer_8231P104, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P104 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P104_tags_209, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P104_tags_209) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P104_tags_209[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P104_tags_209, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P104_tags_209) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P104_tags_209[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P104_constr_209, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P104_209, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P104_specs_209 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P105_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_8231P105_tags_211[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P105_specs_211 = { + sizeof(struct ProtocolExtensionContainer_8231P105), + offsetof(struct ProtocolExtensionContainer_8231P105, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P105 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P105_tags_211, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P105_tags_211) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P105_tags_211[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P105_tags_211, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P105_tags_211) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P105_tags_211[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P105_constr_211, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P105_211, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P105_specs_211 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P106_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_8231P106_tags_213[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P106_specs_213 = { + sizeof(struct ProtocolExtensionContainer_8231P106), + offsetof(struct ProtocolExtensionContainer_8231P106, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P106 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P106_tags_213, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P106_tags_213) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P106_tags_213[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P106_tags_213, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P106_tags_213) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P106_tags_213[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P106_constr_213, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P106_213, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P106_specs_213 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P107_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_8231P107_tags_215[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P107_specs_215 = { + sizeof(struct ProtocolExtensionContainer_8231P107), + offsetof(struct ProtocolExtensionContainer_8231P107, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P107 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P107_tags_215, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P107_tags_215) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P107_tags_215[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P107_tags_215, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P107_tags_215) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P107_tags_215[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P107_constr_215, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P107_215, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P107_specs_215 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P108_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_8231P108_tags_217[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P108_specs_217 = { + sizeof(struct ProtocolExtensionContainer_8231P108), + offsetof(struct ProtocolExtensionContainer_8231P108, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P108 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P108_tags_217, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P108_tags_217) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P108_tags_217[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P108_tags_217, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P108_tags_217) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P108_tags_217[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P108_constr_217, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P108_217, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P108_specs_217 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P109_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_8231P109_tags_219[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P109_specs_219 = { + sizeof(struct ProtocolExtensionContainer_8231P109), + offsetof(struct ProtocolExtensionContainer_8231P109, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P109 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P109_tags_219, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P109_tags_219) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P109_tags_219[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P109_tags_219, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P109_tags_219) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P109_tags_219[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P109_constr_219, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P109_219, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P109_specs_219 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P110_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_8231P110_tags_221[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P110_specs_221 = { + sizeof(struct ProtocolExtensionContainer_8231P110), + offsetof(struct ProtocolExtensionContainer_8231P110, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P110 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P110_tags_221, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P110_tags_221) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P110_tags_221[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P110_tags_221, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P110_tags_221) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P110_tags_221[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P110_constr_221, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P110_221, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P110_specs_221 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P111_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_8231P111_tags_223[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P111_specs_223 = { + sizeof(struct ProtocolExtensionContainer_8231P111), + offsetof(struct ProtocolExtensionContainer_8231P111, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P111 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P111_tags_223, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P111_tags_223) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P111_tags_223[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P111_tags_223, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P111_tags_223) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P111_tags_223[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P111_constr_223, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P111_223, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P111_specs_223 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P112_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_8231P112_tags_225[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P112_specs_225 = { + sizeof(struct ProtocolExtensionContainer_8231P112), + offsetof(struct ProtocolExtensionContainer_8231P112, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P112 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P112_tags_225, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P112_tags_225) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P112_tags_225[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P112_tags_225, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P112_tags_225) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P112_tags_225[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P112_constr_225, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P112_225, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P112_specs_225 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P113_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_8231P113_tags_227[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P113_specs_227 = { + sizeof(struct ProtocolExtensionContainer_8231P113), + offsetof(struct ProtocolExtensionContainer_8231P113, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P113 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P113_tags_227, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P113_tags_227) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P113_tags_227[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P113_tags_227, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P113_tags_227) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P113_tags_227[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P113_constr_227, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P113_227, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P113_specs_227 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P114_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_8231P114_tags_229[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P114_specs_229 = { + sizeof(struct ProtocolExtensionContainer_8231P114), + offsetof(struct ProtocolExtensionContainer_8231P114, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P114 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P114_tags_229, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P114_tags_229) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P114_tags_229[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P114_tags_229, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P114_tags_229) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P114_tags_229[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P114_constr_229, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P114_229, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P114_specs_229 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P115_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_8231P115_tags_231[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P115_specs_231 = { + sizeof(struct ProtocolExtensionContainer_8231P115), + offsetof(struct ProtocolExtensionContainer_8231P115, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P115 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P115_tags_231, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P115_tags_231) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P115_tags_231[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P115_tags_231, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P115_tags_231) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P115_tags_231[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P115_constr_231, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P115_231, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P115_specs_231 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P116_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_8231P116_tags_233[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P116_specs_233 = { + sizeof(struct ProtocolExtensionContainer_8231P116), + offsetof(struct ProtocolExtensionContainer_8231P116, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P116 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P116_tags_233, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P116_tags_233) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P116_tags_233[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P116_tags_233, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P116_tags_233) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P116_tags_233[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P116_constr_233, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P116_233, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P116_specs_233 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P117_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_8231P117_tags_235[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P117_specs_235 = { + sizeof(struct ProtocolExtensionContainer_8231P117), + offsetof(struct ProtocolExtensionContainer_8231P117, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P117 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P117_tags_235, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P117_tags_235) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P117_tags_235[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P117_tags_235, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P117_tags_235) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P117_tags_235[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P117_constr_235, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P117_235, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P117_specs_235 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P118_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_8231P118_tags_237[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P118_specs_237 = { + sizeof(struct ProtocolExtensionContainer_8231P118), + offsetof(struct ProtocolExtensionContainer_8231P118, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P118 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P118_tags_237, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P118_tags_237) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P118_tags_237[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P118_tags_237, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P118_tags_237) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P118_tags_237[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P118_constr_237, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P118_237, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P118_specs_237 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P119_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_8231P119_tags_239[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P119_specs_239 = { + sizeof(struct ProtocolExtensionContainer_8231P119), + offsetof(struct ProtocolExtensionContainer_8231P119, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P119 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P119_tags_239, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P119_tags_239) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P119_tags_239[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P119_tags_239, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P119_tags_239) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P119_tags_239[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P119_constr_239, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P119_239, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P119_specs_239 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P120_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_8231P120_tags_241[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P120_specs_241 = { + sizeof(struct ProtocolExtensionContainer_8231P120), + offsetof(struct ProtocolExtensionContainer_8231P120, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P120 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P120_tags_241, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P120_tags_241) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P120_tags_241[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P120_tags_241, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P120_tags_241) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P120_tags_241[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P120_constr_241, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P120_241, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P120_specs_241 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P121_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_8231P121_tags_243[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P121_specs_243 = { + sizeof(struct ProtocolExtensionContainer_8231P121), + offsetof(struct ProtocolExtensionContainer_8231P121, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P121 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P121_tags_243, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P121_tags_243) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P121_tags_243[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P121_tags_243, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P121_tags_243) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P121_tags_243[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P121_constr_243, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P121_243, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P121_specs_243 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P122_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_8231P122_tags_245[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P122_specs_245 = { + sizeof(struct ProtocolExtensionContainer_8231P122), + offsetof(struct ProtocolExtensionContainer_8231P122, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P122 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P122_tags_245, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P122_tags_245) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P122_tags_245[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P122_tags_245, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P122_tags_245) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P122_tags_245[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P122_constr_245, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P122_245, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P122_specs_245 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P123_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_8231P123_tags_247[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P123_specs_247 = { + sizeof(struct ProtocolExtensionContainer_8231P123), + offsetof(struct ProtocolExtensionContainer_8231P123, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P123 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P123_tags_247, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P123_tags_247) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P123_tags_247[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P123_tags_247, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P123_tags_247) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P123_tags_247[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P123_constr_247, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P123_247, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P123_specs_247 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P124_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_8231P124_tags_249[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P124_specs_249 = { + sizeof(struct ProtocolExtensionContainer_8231P124), + offsetof(struct ProtocolExtensionContainer_8231P124, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P124 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P124_tags_249, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P124_tags_249) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P124_tags_249[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P124_tags_249, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P124_tags_249) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P124_tags_249[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P124_constr_249, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P124_249, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P124_specs_249 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P125_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_8231P125_tags_251[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P125_specs_251 = { + sizeof(struct ProtocolExtensionContainer_8231P125), + offsetof(struct ProtocolExtensionContainer_8231P125, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P125 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P125_tags_251, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P125_tags_251) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P125_tags_251[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P125_tags_251, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P125_tags_251) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P125_tags_251[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P125_constr_251, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P125_251, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P125_specs_251 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P126_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_8231P126_tags_253[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P126_specs_253 = { + sizeof(struct ProtocolExtensionContainer_8231P126), + offsetof(struct ProtocolExtensionContainer_8231P126, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P126 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P126_tags_253, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P126_tags_253) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P126_tags_253[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P126_tags_253, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P126_tags_253) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P126_tags_253[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P126_constr_253, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P126_253, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P126_specs_253 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P127_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_8231P127_tags_255[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P127_specs_255 = { + sizeof(struct ProtocolExtensionContainer_8231P127), + offsetof(struct ProtocolExtensionContainer_8231P127, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P127 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P127_tags_255, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P127_tags_255) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P127_tags_255[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P127_tags_255, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P127_tags_255) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P127_tags_255[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P127_constr_255, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P127_255, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P127_specs_255 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P128_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_8231P128_tags_257[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P128_specs_257 = { + sizeof(struct ProtocolExtensionContainer_8231P128), + offsetof(struct ProtocolExtensionContainer_8231P128, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P128 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P128_tags_257, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P128_tags_257) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P128_tags_257[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P128_tags_257, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P128_tags_257) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P128_tags_257[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P128_constr_257, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P128_257, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P128_specs_257 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P129_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_8231P129_tags_259[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P129_specs_259 = { + sizeof(struct ProtocolExtensionContainer_8231P129), + offsetof(struct ProtocolExtensionContainer_8231P129, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P129 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P129_tags_259, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P129_tags_259) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P129_tags_259[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P129_tags_259, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P129_tags_259) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P129_tags_259[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P129_constr_259, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P129_259, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P129_specs_259 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P130_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_8231P130_tags_261[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P130_specs_261 = { + sizeof(struct ProtocolExtensionContainer_8231P130), + offsetof(struct ProtocolExtensionContainer_8231P130, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P130 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P130_tags_261, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P130_tags_261) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P130_tags_261[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P130_tags_261, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P130_tags_261) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P130_tags_261[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P130_constr_261, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P130_261, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P130_specs_261 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P131_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_8231P131_tags_263[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P131_specs_263 = { + sizeof(struct ProtocolExtensionContainer_8231P131), + offsetof(struct ProtocolExtensionContainer_8231P131, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P131 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P131_tags_263, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P131_tags_263) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P131_tags_263[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P131_tags_263, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P131_tags_263) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P131_tags_263[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P131_constr_263, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P131_263, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P131_specs_263 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P132_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_8231P132_tags_265[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P132_specs_265 = { + sizeof(struct ProtocolExtensionContainer_8231P132), + offsetof(struct ProtocolExtensionContainer_8231P132, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P132 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P132_tags_265, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P132_tags_265) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P132_tags_265[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P132_tags_265, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P132_tags_265) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P132_tags_265[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P132_constr_265, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P132_265, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P132_specs_265 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P133_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_8231P133_tags_267[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P133_specs_267 = { + sizeof(struct ProtocolExtensionContainer_8231P133), + offsetof(struct ProtocolExtensionContainer_8231P133, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P133 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P133_tags_267, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P133_tags_267) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P133_tags_267[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P133_tags_267, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P133_tags_267) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P133_tags_267[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P133_constr_267, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P133_267, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P133_specs_267 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P134_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_8231P134_tags_269[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P134_specs_269 = { + sizeof(struct ProtocolExtensionContainer_8231P134), + offsetof(struct ProtocolExtensionContainer_8231P134, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P134 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P134_tags_269, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P134_tags_269) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P134_tags_269[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P134_tags_269, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P134_tags_269) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P134_tags_269[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P134_constr_269, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P134_269, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P134_specs_269 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P135_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_8231P135_tags_271[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P135_specs_271 = { + sizeof(struct ProtocolExtensionContainer_8231P135), + offsetof(struct ProtocolExtensionContainer_8231P135, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P135 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P135_tags_271, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P135_tags_271) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P135_tags_271[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P135_tags_271, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P135_tags_271) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P135_tags_271[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P135_constr_271, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P135_271, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P135_specs_271 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P136_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_8231P136_tags_273[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P136_specs_273 = { + sizeof(struct ProtocolExtensionContainer_8231P136), + offsetof(struct ProtocolExtensionContainer_8231P136, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P136 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P136_tags_273, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P136_tags_273) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P136_tags_273[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P136_tags_273, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P136_tags_273) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P136_tags_273[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P136_constr_273, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P136_273, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P136_specs_273 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P137_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_8231P137_tags_275[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P137_specs_275 = { + sizeof(struct ProtocolExtensionContainer_8231P137), + offsetof(struct ProtocolExtensionContainer_8231P137, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P137 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P137_tags_275, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P137_tags_275) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P137_tags_275[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P137_tags_275, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P137_tags_275) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P137_tags_275[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P137_constr_275, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P137_275, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P137_specs_275 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P138_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_8231P138_tags_277[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P138_specs_277 = { + sizeof(struct ProtocolExtensionContainer_8231P138), + offsetof(struct ProtocolExtensionContainer_8231P138, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P138 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P138_tags_277, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P138_tags_277) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P138_tags_277[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P138_tags_277, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P138_tags_277) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P138_tags_277[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P138_constr_277, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P138_277, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P138_specs_277 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P139_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_8231P139_tags_279[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P139_specs_279 = { + sizeof(struct ProtocolExtensionContainer_8231P139), + offsetof(struct ProtocolExtensionContainer_8231P139, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P139 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P139_tags_279, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P139_tags_279) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P139_tags_279[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P139_tags_279, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P139_tags_279) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P139_tags_279[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P139_constr_279, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P139_279, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P139_specs_279 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P140_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_8231P140_tags_281[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P140_specs_281 = { + sizeof(struct ProtocolExtensionContainer_8231P140), + offsetof(struct ProtocolExtensionContainer_8231P140, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P140 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P140_tags_281, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P140_tags_281) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P140_tags_281[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P140_tags_281, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P140_tags_281) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P140_tags_281[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P140_constr_281, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P140_281, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P140_specs_281 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P141_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_8231P141_tags_283[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P141_specs_283 = { + sizeof(struct ProtocolExtensionContainer_8231P141), + offsetof(struct ProtocolExtensionContainer_8231P141, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P141 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P141_tags_283, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P141_tags_283) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P141_tags_283[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P141_tags_283, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P141_tags_283) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P141_tags_283[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P141_constr_283, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P141_283, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P141_specs_283 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P142_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_8231P142_tags_285[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P142_specs_285 = { + sizeof(struct ProtocolExtensionContainer_8231P142), + offsetof(struct ProtocolExtensionContainer_8231P142, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P142 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P142_tags_285, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P142_tags_285) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P142_tags_285[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P142_tags_285, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P142_tags_285) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P142_tags_285[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P142_constr_285, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P142_285, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P142_specs_285 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P143_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_8231P143_tags_287[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P143_specs_287 = { + sizeof(struct ProtocolExtensionContainer_8231P143), + offsetof(struct ProtocolExtensionContainer_8231P143, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P143 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P143_tags_287, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P143_tags_287) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P143_tags_287[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P143_tags_287, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P143_tags_287) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P143_tags_287[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P143_constr_287, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P143_287, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P143_specs_287 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P144_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_8231P144_tags_289[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P144_specs_289 = { + sizeof(struct ProtocolExtensionContainer_8231P144), + offsetof(struct ProtocolExtensionContainer_8231P144, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P144 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P144_tags_289, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P144_tags_289) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P144_tags_289[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P144_tags_289, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P144_tags_289) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P144_tags_289[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P144_constr_289, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P144_289, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P144_specs_289 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P145_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_8231P145_tags_291[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P145_specs_291 = { + sizeof(struct ProtocolExtensionContainer_8231P145), + offsetof(struct ProtocolExtensionContainer_8231P145, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P145 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P145_tags_291, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P145_tags_291) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P145_tags_291[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P145_tags_291, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P145_tags_291) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P145_tags_291[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P145_constr_291, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P145_291, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P145_specs_291 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P146_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_8231P146_tags_293[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P146_specs_293 = { + sizeof(struct ProtocolExtensionContainer_8231P146), + offsetof(struct ProtocolExtensionContainer_8231P146, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P146 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P146_tags_293, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P146_tags_293) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P146_tags_293[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P146_tags_293, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P146_tags_293) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P146_tags_293[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P146_constr_293, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P146_293, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P146_specs_293 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P147_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_8231P147_tags_295[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P147_specs_295 = { + sizeof(struct ProtocolExtensionContainer_8231P147), + offsetof(struct ProtocolExtensionContainer_8231P147, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P147 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P147_tags_295, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P147_tags_295) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P147_tags_295[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P147_tags_295, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P147_tags_295) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P147_tags_295[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P147_constr_295, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P147_295, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P147_specs_295 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P148_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_8231P148_tags_297[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P148_specs_297 = { + sizeof(struct ProtocolExtensionContainer_8231P148), + offsetof(struct ProtocolExtensionContainer_8231P148, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P148 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P148_tags_297, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P148_tags_297) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P148_tags_297[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P148_tags_297, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P148_tags_297) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P148_tags_297[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P148_constr_297, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P148_297, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P148_specs_297 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P149_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_8231P149_tags_299[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P149_specs_299 = { + sizeof(struct ProtocolExtensionContainer_8231P149), + offsetof(struct ProtocolExtensionContainer_8231P149, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P149 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P149_tags_299, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P149_tags_299) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P149_tags_299[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P149_tags_299, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P149_tags_299) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P149_tags_299[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P149_constr_299, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P149_299, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P149_specs_299 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P150_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_8231P150_tags_301[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P150_specs_301 = { + sizeof(struct ProtocolExtensionContainer_8231P150), + offsetof(struct ProtocolExtensionContainer_8231P150, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P150 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P150_tags_301, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P150_tags_301) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P150_tags_301[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P150_tags_301, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P150_tags_301) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P150_tags_301[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P150_constr_301, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P150_301, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P150_specs_301 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P151_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_8231P151_tags_303[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P151_specs_303 = { + sizeof(struct ProtocolExtensionContainer_8231P151), + offsetof(struct ProtocolExtensionContainer_8231P151, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P151 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P151_tags_303, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P151_tags_303) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P151_tags_303[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P151_tags_303, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P151_tags_303) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P151_tags_303[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P151_constr_303, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P151_303, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P151_specs_303 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P152_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_8231P152_tags_305[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P152_specs_305 = { + sizeof(struct ProtocolExtensionContainer_8231P152), + offsetof(struct ProtocolExtensionContainer_8231P152, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P152 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P152_tags_305, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P152_tags_305) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P152_tags_305[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P152_tags_305, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P152_tags_305) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P152_tags_305[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P152_constr_305, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P152_305, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P152_specs_305 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P153_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_8231P153_tags_307[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P153_specs_307 = { + sizeof(struct ProtocolExtensionContainer_8231P153), + offsetof(struct ProtocolExtensionContainer_8231P153, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P153 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P153_tags_307, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P153_tags_307) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P153_tags_307[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P153_tags_307, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P153_tags_307) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P153_tags_307[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P153_constr_307, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P153_307, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P153_specs_307 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P154_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_8231P154_tags_309[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P154_specs_309 = { + sizeof(struct ProtocolExtensionContainer_8231P154), + offsetof(struct ProtocolExtensionContainer_8231P154, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P154 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P154_tags_309, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P154_tags_309) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P154_tags_309[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P154_tags_309, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P154_tags_309) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P154_tags_309[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P154_constr_309, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P154_309, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P154_specs_309 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P155_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_8231P155_tags_311[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P155_specs_311 = { + sizeof(struct ProtocolExtensionContainer_8231P155), + offsetof(struct ProtocolExtensionContainer_8231P155, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P155 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P155_tags_311, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P155_tags_311) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P155_tags_311[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P155_tags_311, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P155_tags_311) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P155_tags_311[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P155_constr_311, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P155_311, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P155_specs_311 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P156_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_8231P156_tags_313[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P156_specs_313 = { + sizeof(struct ProtocolExtensionContainer_8231P156), + offsetof(struct ProtocolExtensionContainer_8231P156, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P156 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P156_tags_313, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P156_tags_313) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P156_tags_313[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P156_tags_313, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P156_tags_313) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P156_tags_313[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P156_constr_313, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P156_313, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P156_specs_313 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P157_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_8231P157_tags_315[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P157_specs_315 = { + sizeof(struct ProtocolExtensionContainer_8231P157), + offsetof(struct ProtocolExtensionContainer_8231P157, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P157 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P157_tags_315, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P157_tags_315) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P157_tags_315[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P157_tags_315, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P157_tags_315) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P157_tags_315[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P157_constr_315, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P157_315, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P157_specs_315 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P158_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_8231P158_tags_317[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P158_specs_317 = { + sizeof(struct ProtocolExtensionContainer_8231P158), + offsetof(struct ProtocolExtensionContainer_8231P158, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P158 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P158_tags_317, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P158_tags_317) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P158_tags_317[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P158_tags_317, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P158_tags_317) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P158_tags_317[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P158_constr_317, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P158_317, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P158_specs_317 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P159_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_8231P159_tags_319[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P159_specs_319 = { + sizeof(struct ProtocolExtensionContainer_8231P159), + offsetof(struct ProtocolExtensionContainer_8231P159, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P159 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P159_tags_319, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P159_tags_319) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P159_tags_319[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P159_tags_319, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P159_tags_319) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P159_tags_319[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P159_constr_319, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P159_319, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P159_specs_319 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P160_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_8231P160_tags_321[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P160_specs_321 = { + sizeof(struct ProtocolExtensionContainer_8231P160), + offsetof(struct ProtocolExtensionContainer_8231P160, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P160 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P160_tags_321, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P160_tags_321) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P160_tags_321[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P160_tags_321, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P160_tags_321) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P160_tags_321[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P160_constr_321, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P160_321, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P160_specs_321 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P161_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_8231P161_tags_323[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P161_specs_323 = { + sizeof(struct ProtocolExtensionContainer_8231P161), + offsetof(struct ProtocolExtensionContainer_8231P161, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P161 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P161_tags_323, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P161_tags_323) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P161_tags_323[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P161_tags_323, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P161_tags_323) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P161_tags_323[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P161_constr_323, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P161_323, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P161_specs_323 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P162_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_8231P162_tags_325[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P162_specs_325 = { + sizeof(struct ProtocolExtensionContainer_8231P162), + offsetof(struct ProtocolExtensionContainer_8231P162, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P162 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P162_tags_325, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P162_tags_325) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P162_tags_325[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P162_tags_325, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P162_tags_325) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P162_tags_325[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P162_constr_325, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P162_325, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P162_specs_325 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P163_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_8231P163_tags_327[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P163_specs_327 = { + sizeof(struct ProtocolExtensionContainer_8231P163), + offsetof(struct ProtocolExtensionContainer_8231P163, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P163 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P163_tags_327, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P163_tags_327) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P163_tags_327[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P163_tags_327, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P163_tags_327) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P163_tags_327[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P163_constr_327, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P163_327, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P163_specs_327 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P164_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_8231P164_tags_329[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P164_specs_329 = { + sizeof(struct ProtocolExtensionContainer_8231P164), + offsetof(struct ProtocolExtensionContainer_8231P164, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P164 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P164_tags_329, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P164_tags_329) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P164_tags_329[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P164_tags_329, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P164_tags_329) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P164_tags_329[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P164_constr_329, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P164_329, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P164_specs_329 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P165_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_8231P165_tags_331[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P165_specs_331 = { + sizeof(struct ProtocolExtensionContainer_8231P165), + offsetof(struct ProtocolExtensionContainer_8231P165, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P165 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P165_tags_331, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P165_tags_331) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P165_tags_331[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P165_tags_331, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P165_tags_331) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P165_tags_331[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P165_constr_331, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P165_331, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P165_specs_331 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P166_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_8231P166_tags_333[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P166_specs_333 = { + sizeof(struct ProtocolExtensionContainer_8231P166), + offsetof(struct ProtocolExtensionContainer_8231P166, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P166 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P166_tags_333, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P166_tags_333) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P166_tags_333[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P166_tags_333, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P166_tags_333) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P166_tags_333[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P166_constr_333, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P166_333, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P166_specs_333 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P167_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_8231P167_tags_335[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P167_specs_335 = { + sizeof(struct ProtocolExtensionContainer_8231P167), + offsetof(struct ProtocolExtensionContainer_8231P167, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P167 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P167_tags_335, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P167_tags_335) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P167_tags_335[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P167_tags_335, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P167_tags_335) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P167_tags_335[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P167_constr_335, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P167_335, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P167_specs_335 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P168_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_8231P168_tags_337[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P168_specs_337 = { + sizeof(struct ProtocolExtensionContainer_8231P168), + offsetof(struct ProtocolExtensionContainer_8231P168, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P168 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P168_tags_337, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P168_tags_337) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P168_tags_337[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P168_tags_337, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P168_tags_337) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P168_tags_337[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P168_constr_337, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P168_337, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P168_specs_337 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P169_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_8231P169_tags_339[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P169_specs_339 = { + sizeof(struct ProtocolExtensionContainer_8231P169), + offsetof(struct ProtocolExtensionContainer_8231P169, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P169 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P169_tags_339, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P169_tags_339) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P169_tags_339[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P169_tags_339, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P169_tags_339) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P169_tags_339[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P169_constr_339, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P169_339, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P169_specs_339 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P170_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_8231P170_tags_341[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P170_specs_341 = { + sizeof(struct ProtocolExtensionContainer_8231P170), + offsetof(struct ProtocolExtensionContainer_8231P170, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P170 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P170_tags_341, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P170_tags_341) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P170_tags_341[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P170_tags_341, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P170_tags_341) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P170_tags_341[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P170_constr_341, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P170_341, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P170_specs_341 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P171_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_8231P171_tags_343[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P171_specs_343 = { + sizeof(struct ProtocolExtensionContainer_8231P171), + offsetof(struct ProtocolExtensionContainer_8231P171, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P171 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P171_tags_343, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P171_tags_343) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P171_tags_343[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P171_tags_343, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P171_tags_343) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P171_tags_343[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P171_constr_343, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P171_343, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P171_specs_343 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P172_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_8231P172_tags_345[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P172_specs_345 = { + sizeof(struct ProtocolExtensionContainer_8231P172), + offsetof(struct ProtocolExtensionContainer_8231P172, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P172 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P172_tags_345, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P172_tags_345) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P172_tags_345[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P172_tags_345, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P172_tags_345) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P172_tags_345[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P172_constr_345, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P172_345, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P172_specs_345 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P173_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_8231P173_tags_347[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P173_specs_347 = { + sizeof(struct ProtocolExtensionContainer_8231P173), + offsetof(struct ProtocolExtensionContainer_8231P173, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P173 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P173_tags_347, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P173_tags_347) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P173_tags_347[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P173_tags_347, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P173_tags_347) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P173_tags_347[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P173_constr_347, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P173_347, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P173_specs_347 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P174_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_8231P174_tags_349[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P174_specs_349 = { + sizeof(struct ProtocolExtensionContainer_8231P174), + offsetof(struct ProtocolExtensionContainer_8231P174, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P174 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P174_tags_349, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P174_tags_349) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P174_tags_349[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P174_tags_349, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P174_tags_349) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P174_tags_349[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P174_constr_349, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P174_349, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P174_specs_349 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P175_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_8231P175_tags_351[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P175_specs_351 = { + sizeof(struct ProtocolExtensionContainer_8231P175), + offsetof(struct ProtocolExtensionContainer_8231P175, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P175 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P175_tags_351, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P175_tags_351) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P175_tags_351[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P175_tags_351, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P175_tags_351) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P175_tags_351[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P175_constr_351, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P175_351, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P175_specs_351 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P176_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_8231P176_tags_353[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P176_specs_353 = { + sizeof(struct ProtocolExtensionContainer_8231P176), + offsetof(struct ProtocolExtensionContainer_8231P176, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P176 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P176_tags_353, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P176_tags_353) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P176_tags_353[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P176_tags_353, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P176_tags_353) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P176_tags_353[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P176_constr_353, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P176_353, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P176_specs_353 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P177_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_8231P177_tags_355[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P177_specs_355 = { + sizeof(struct ProtocolExtensionContainer_8231P177), + offsetof(struct ProtocolExtensionContainer_8231P177, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P177 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P177_tags_355, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P177_tags_355) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P177_tags_355[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P177_tags_355, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P177_tags_355) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P177_tags_355[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P177_constr_355, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P177_355, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P177_specs_355 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P178_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_8231P178_tags_357[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P178_specs_357 = { + sizeof(struct ProtocolExtensionContainer_8231P178), + offsetof(struct ProtocolExtensionContainer_8231P178, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P178 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P178_tags_357, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P178_tags_357) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P178_tags_357[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P178_tags_357, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P178_tags_357) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P178_tags_357[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P178_constr_357, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P178_357, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P178_specs_357 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P179_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_8231P179_tags_359[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P179_specs_359 = { + sizeof(struct ProtocolExtensionContainer_8231P179), + offsetof(struct ProtocolExtensionContainer_8231P179, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P179 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P179_tags_359, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P179_tags_359) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P179_tags_359[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P179_tags_359, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P179_tags_359) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P179_tags_359[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P179_constr_359, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P179_359, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P179_specs_359 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P180_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_8231P180_tags_361[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P180_specs_361 = { + sizeof(struct ProtocolExtensionContainer_8231P180), + offsetof(struct ProtocolExtensionContainer_8231P180, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P180 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P180_tags_361, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P180_tags_361) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P180_tags_361[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P180_tags_361, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P180_tags_361) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P180_tags_361[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P180_constr_361, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P180_361, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P180_specs_361 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P181_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_8231P181_tags_363[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P181_specs_363 = { + sizeof(struct ProtocolExtensionContainer_8231P181), + offsetof(struct ProtocolExtensionContainer_8231P181, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P181 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P181_tags_363, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P181_tags_363) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P181_tags_363[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P181_tags_363, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P181_tags_363) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P181_tags_363[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P181_constr_363, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P181_363, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P181_specs_363 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P182_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_8231P182_tags_365[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P182_specs_365 = { + sizeof(struct ProtocolExtensionContainer_8231P182), + offsetof(struct ProtocolExtensionContainer_8231P182, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P182 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P182_tags_365, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P182_tags_365) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P182_tags_365[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P182_tags_365, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P182_tags_365) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P182_tags_365[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P182_constr_365, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P182_365, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P182_specs_365 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P183_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_8231P183_tags_367[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P183_specs_367 = { + sizeof(struct ProtocolExtensionContainer_8231P183), + offsetof(struct ProtocolExtensionContainer_8231P183, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P183 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P183_tags_367, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P183_tags_367) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P183_tags_367[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P183_tags_367, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P183_tags_367) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P183_tags_367[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P183_constr_367, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P183_367, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P183_specs_367 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P184_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_8231P184_tags_369[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P184_specs_369 = { + sizeof(struct ProtocolExtensionContainer_8231P184), + offsetof(struct ProtocolExtensionContainer_8231P184, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P184 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P184_tags_369, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P184_tags_369) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P184_tags_369[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P184_tags_369, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P184_tags_369) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P184_tags_369[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P184_constr_369, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P184_369, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P184_specs_369 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P185_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_8231P185_tags_371[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P185_specs_371 = { + sizeof(struct ProtocolExtensionContainer_8231P185), + offsetof(struct ProtocolExtensionContainer_8231P185, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P185 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P185_tags_371, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P185_tags_371) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P185_tags_371[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P185_tags_371, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P185_tags_371) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P185_tags_371[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P185_constr_371, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P185_371, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P185_specs_371 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P186_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_8231P186_tags_373[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P186_specs_373 = { + sizeof(struct ProtocolExtensionContainer_8231P186), + offsetof(struct ProtocolExtensionContainer_8231P186, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P186 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P186_tags_373, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P186_tags_373) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P186_tags_373[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P186_tags_373, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P186_tags_373) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P186_tags_373[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P186_constr_373, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P186_373, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P186_specs_373 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P187_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_8231P187_tags_375[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P187_specs_375 = { + sizeof(struct ProtocolExtensionContainer_8231P187), + offsetof(struct ProtocolExtensionContainer_8231P187, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P187 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P187_tags_375, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P187_tags_375) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P187_tags_375[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P187_tags_375, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P187_tags_375) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P187_tags_375[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P187_constr_375, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P187_375, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P187_specs_375 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P188_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_8231P188_tags_377[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P188_specs_377 = { + sizeof(struct ProtocolExtensionContainer_8231P188), + offsetof(struct ProtocolExtensionContainer_8231P188, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P188 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P188_tags_377, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P188_tags_377) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P188_tags_377[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P188_tags_377, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P188_tags_377) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P188_tags_377[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P188_constr_377, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P188_377, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P188_specs_377 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P189_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_8231P189_tags_379[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P189_specs_379 = { + sizeof(struct ProtocolExtensionContainer_8231P189), + offsetof(struct ProtocolExtensionContainer_8231P189, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P189 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P189_tags_379, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P189_tags_379) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P189_tags_379[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P189_tags_379, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P189_tags_379) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P189_tags_379[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P189_constr_379, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P189_379, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P189_specs_379 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P190_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_8231P190_tags_381[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P190_specs_381 = { + sizeof(struct ProtocolExtensionContainer_8231P190), + offsetof(struct ProtocolExtensionContainer_8231P190, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P190 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P190_tags_381, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P190_tags_381) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P190_tags_381[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P190_tags_381, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P190_tags_381) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P190_tags_381[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P190_constr_381, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P190_381, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P190_specs_381 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P191_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_8231P191_tags_383[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P191_specs_383 = { + sizeof(struct ProtocolExtensionContainer_8231P191), + offsetof(struct ProtocolExtensionContainer_8231P191, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P191 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P191_tags_383, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P191_tags_383) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P191_tags_383[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P191_tags_383, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P191_tags_383) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P191_tags_383[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P191_constr_383, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P191_383, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P191_specs_383 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P192_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_8231P192_tags_385[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P192_specs_385 = { + sizeof(struct ProtocolExtensionContainer_8231P192), + offsetof(struct ProtocolExtensionContainer_8231P192, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P192 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P192_tags_385, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P192_tags_385) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P192_tags_385[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P192_tags_385, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P192_tags_385) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P192_tags_385[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P192_constr_385, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P192_385, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P192_specs_385 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P193_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_8231P193_tags_387[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P193_specs_387 = { + sizeof(struct ProtocolExtensionContainer_8231P193), + offsetof(struct ProtocolExtensionContainer_8231P193, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P193 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P193_tags_387, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P193_tags_387) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P193_tags_387[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P193_tags_387, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P193_tags_387) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P193_tags_387[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P193_constr_387, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P193_387, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P193_specs_387 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P194_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_8231P194_tags_389[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P194_specs_389 = { + sizeof(struct ProtocolExtensionContainer_8231P194), + offsetof(struct ProtocolExtensionContainer_8231P194, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P194 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P194_tags_389, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P194_tags_389) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P194_tags_389[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P194_tags_389, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P194_tags_389) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P194_tags_389[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P194_constr_389, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P194_389, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P194_specs_389 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P195_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_8231P195_tags_391[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P195_specs_391 = { + sizeof(struct ProtocolExtensionContainer_8231P195), + offsetof(struct ProtocolExtensionContainer_8231P195, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P195 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P195_tags_391, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P195_tags_391) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P195_tags_391[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P195_tags_391, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P195_tags_391) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P195_tags_391[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P195_constr_391, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P195_391, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P195_specs_391 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P196_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_8231P196_tags_393[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P196_specs_393 = { + sizeof(struct ProtocolExtensionContainer_8231P196), + offsetof(struct ProtocolExtensionContainer_8231P196, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P196 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P196_tags_393, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P196_tags_393) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P196_tags_393[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P196_tags_393, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P196_tags_393) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P196_tags_393[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P196_constr_393, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P196_393, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P196_specs_393 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P197_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_8231P197_tags_395[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P197_specs_395 = { + sizeof(struct ProtocolExtensionContainer_8231P197), + offsetof(struct ProtocolExtensionContainer_8231P197, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P197 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P197_tags_395, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P197_tags_395) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P197_tags_395[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P197_tags_395, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P197_tags_395) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P197_tags_395[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P197_constr_395, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P197_395, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P197_specs_395 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P198_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_8231P198_tags_397[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P198_specs_397 = { + sizeof(struct ProtocolExtensionContainer_8231P198), + offsetof(struct ProtocolExtensionContainer_8231P198, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P198 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P198_tags_397, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P198_tags_397) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P198_tags_397[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P198_tags_397, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P198_tags_397) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P198_tags_397[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P198_constr_397, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P198_397, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P198_specs_397 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P199_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_8231P199_tags_399[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P199_specs_399 = { + sizeof(struct ProtocolExtensionContainer_8231P199), + offsetof(struct ProtocolExtensionContainer_8231P199, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P199 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P199_tags_399, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P199_tags_399) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P199_tags_399[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P199_tags_399, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P199_tags_399) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P199_tags_399[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P199_constr_399, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P199_399, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P199_specs_399 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P200_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_8231P200_tags_401[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P200_specs_401 = { + sizeof(struct ProtocolExtensionContainer_8231P200), + offsetof(struct ProtocolExtensionContainer_8231P200, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P200 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P200_tags_401, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P200_tags_401) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P200_tags_401[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P200_tags_401, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P200_tags_401) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P200_tags_401[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P200_constr_401, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P200_401, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P200_specs_401 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P201_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_8231P201_tags_403[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P201_specs_403 = { + sizeof(struct ProtocolExtensionContainer_8231P201), + offsetof(struct ProtocolExtensionContainer_8231P201, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P201 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P201_tags_403, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P201_tags_403) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P201_tags_403[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P201_tags_403, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P201_tags_403) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P201_tags_403[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P201_constr_403, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P201_403, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P201_specs_403 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P202_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_8231P202_tags_405[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P202_specs_405 = { + sizeof(struct ProtocolExtensionContainer_8231P202), + offsetof(struct ProtocolExtensionContainer_8231P202, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P202 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P202_tags_405, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P202_tags_405) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P202_tags_405[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P202_tags_405, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P202_tags_405) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P202_tags_405[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P202_constr_405, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P202_405, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P202_specs_405 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P203_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_8231P203_tags_407[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P203_specs_407 = { + sizeof(struct ProtocolExtensionContainer_8231P203), + offsetof(struct ProtocolExtensionContainer_8231P203, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P203 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P203_tags_407, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P203_tags_407) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P203_tags_407[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P203_tags_407, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P203_tags_407) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P203_tags_407[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P203_constr_407, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P203_407, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P203_specs_407 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P204_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_8231P204_tags_409[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P204_specs_409 = { + sizeof(struct ProtocolExtensionContainer_8231P204), + offsetof(struct ProtocolExtensionContainer_8231P204, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P204 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P204_tags_409, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P204_tags_409) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P204_tags_409[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P204_tags_409, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P204_tags_409) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P204_tags_409[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P204_constr_409, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P204_409, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P204_specs_409 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P205_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_8231P205_tags_411[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P205_specs_411 = { + sizeof(struct ProtocolExtensionContainer_8231P205), + offsetof(struct ProtocolExtensionContainer_8231P205, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P205 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P205_tags_411, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P205_tags_411) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P205_tags_411[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P205_tags_411, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P205_tags_411) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P205_tags_411[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P205_constr_411, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P205_411, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P205_specs_411 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P206_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_8231P206_tags_413[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P206_specs_413 = { + sizeof(struct ProtocolExtensionContainer_8231P206), + offsetof(struct ProtocolExtensionContainer_8231P206, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P206 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P206_tags_413, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P206_tags_413) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P206_tags_413[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P206_tags_413, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P206_tags_413) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P206_tags_413[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P206_constr_413, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P206_413, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P206_specs_413 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P207_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_8231P207_tags_415[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P207_specs_415 = { + sizeof(struct ProtocolExtensionContainer_8231P207), + offsetof(struct ProtocolExtensionContainer_8231P207, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P207 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P207_tags_415, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P207_tags_415) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P207_tags_415[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P207_tags_415, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P207_tags_415) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P207_tags_415[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P207_constr_415, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P207_415, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P207_specs_415 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P208_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_8231P208_tags_417[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P208_specs_417 = { + sizeof(struct ProtocolExtensionContainer_8231P208), + offsetof(struct ProtocolExtensionContainer_8231P208, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P208 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P208_tags_417, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P208_tags_417) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P208_tags_417[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P208_tags_417, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P208_tags_417) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P208_tags_417[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P208_constr_417, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P208_417, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P208_specs_417 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P209_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_8231P209_tags_419[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P209_specs_419 = { + sizeof(struct ProtocolExtensionContainer_8231P209), + offsetof(struct ProtocolExtensionContainer_8231P209, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P209 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P209_tags_419, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P209_tags_419) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P209_tags_419[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P209_tags_419, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P209_tags_419) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P209_tags_419[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P209_constr_419, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P209_419, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P209_specs_419 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P210_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_8231P210_tags_421[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P210_specs_421 = { + sizeof(struct ProtocolExtensionContainer_8231P210), + offsetof(struct ProtocolExtensionContainer_8231P210, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P210 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P210_tags_421, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P210_tags_421) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P210_tags_421[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P210_tags_421, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P210_tags_421) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P210_tags_421[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P210_constr_421, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P210_421, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P210_specs_421 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P211_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_8231P211_tags_423[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P211_specs_423 = { + sizeof(struct ProtocolExtensionContainer_8231P211), + offsetof(struct ProtocolExtensionContainer_8231P211, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P211 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P211_tags_423, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P211_tags_423) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P211_tags_423[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P211_tags_423, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P211_tags_423) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P211_tags_423[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P211_constr_423, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P211_423, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P211_specs_423 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P212_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_8231P212_tags_425[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P212_specs_425 = { + sizeof(struct ProtocolExtensionContainer_8231P212), + offsetof(struct ProtocolExtensionContainer_8231P212, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P212 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P212_tags_425, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P212_tags_425) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P212_tags_425[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P212_tags_425, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P212_tags_425) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P212_tags_425[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P212_constr_425, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P212_425, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P212_specs_425 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P213_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_8231P213_tags_427[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P213_specs_427 = { + sizeof(struct ProtocolExtensionContainer_8231P213), + offsetof(struct ProtocolExtensionContainer_8231P213, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P213 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P213_tags_427, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P213_tags_427) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P213_tags_427[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P213_tags_427, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P213_tags_427) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P213_tags_427[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P213_constr_427, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P213_427, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P213_specs_427 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P214_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_8231P214_tags_429[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P214_specs_429 = { + sizeof(struct ProtocolExtensionContainer_8231P214), + offsetof(struct ProtocolExtensionContainer_8231P214, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P214 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P214_tags_429, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P214_tags_429) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P214_tags_429[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P214_tags_429, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P214_tags_429) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P214_tags_429[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P214_constr_429, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P214_429, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P214_specs_429 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P215_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_8231P215_tags_431[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P215_specs_431 = { + sizeof(struct ProtocolExtensionContainer_8231P215), + offsetof(struct ProtocolExtensionContainer_8231P215, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P215 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P215_tags_431, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P215_tags_431) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P215_tags_431[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P215_tags_431, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P215_tags_431) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P215_tags_431[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P215_constr_431, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P215_431, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P215_specs_431 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P216_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_8231P216_tags_433[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P216_specs_433 = { + sizeof(struct ProtocolExtensionContainer_8231P216), + offsetof(struct ProtocolExtensionContainer_8231P216, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P216 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P216_tags_433, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P216_tags_433) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P216_tags_433[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P216_tags_433, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P216_tags_433) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P216_tags_433[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P216_constr_433, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P216_433, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P216_specs_433 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P217_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_8231P217_tags_435[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P217_specs_435 = { + sizeof(struct ProtocolExtensionContainer_8231P217), + offsetof(struct ProtocolExtensionContainer_8231P217, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P217 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P217_tags_435, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P217_tags_435) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P217_tags_435[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P217_tags_435, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P217_tags_435) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P217_tags_435[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P217_constr_435, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P217_435, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P217_specs_435 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P218_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_8231P218_tags_437[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P218_specs_437 = { + sizeof(struct ProtocolExtensionContainer_8231P218), + offsetof(struct ProtocolExtensionContainer_8231P218, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P218 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P218_tags_437, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P218_tags_437) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P218_tags_437[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P218_tags_437, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P218_tags_437) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P218_tags_437[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P218_constr_437, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P218_437, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P218_specs_437 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P219_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_8231P219_tags_439[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P219_specs_439 = { + sizeof(struct ProtocolExtensionContainer_8231P219), + offsetof(struct ProtocolExtensionContainer_8231P219, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P219 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P219_tags_439, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P219_tags_439) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P219_tags_439[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P219_tags_439, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P219_tags_439) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P219_tags_439[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P219_constr_439, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P219_439, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P219_specs_439 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P220_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_8231P220_tags_441[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P220_specs_441 = { + sizeof(struct ProtocolExtensionContainer_8231P220), + offsetof(struct ProtocolExtensionContainer_8231P220, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P220 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P220_tags_441, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P220_tags_441) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P220_tags_441[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P220_tags_441, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P220_tags_441) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P220_tags_441[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P220_constr_441, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P220_441, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P220_specs_441 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P221_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_8231P221_tags_443[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P221_specs_443 = { + sizeof(struct ProtocolExtensionContainer_8231P221), + offsetof(struct ProtocolExtensionContainer_8231P221, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P221 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P221_tags_443, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P221_tags_443) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P221_tags_443[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P221_tags_443, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P221_tags_443) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P221_tags_443[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P221_constr_443, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P221_443, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P221_specs_443 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P222_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_8231P222_tags_445[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P222_specs_445 = { + sizeof(struct ProtocolExtensionContainer_8231P222), + offsetof(struct ProtocolExtensionContainer_8231P222, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P222 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolExtensionContainer_8231P222_tags_445, + sizeof(asn_DEF_ProtocolExtensionContainer_8231P222_tags_445) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P222_tags_445[0]), /* 1 */ + asn_DEF_ProtocolExtensionContainer_8231P222_tags_445, /* Same as above */ + sizeof(asn_DEF_ProtocolExtensionContainer_8231P222_tags_445) + /sizeof(asn_DEF_ProtocolExtensionContainer_8231P222_tags_445[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolExtensionContainer_8231P222_constr_445, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolExtensionContainer_8231P222_445, + 1, /* Single element */ + &asn_SPC_ProtocolExtensionContainer_8231P222_specs_445 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/ProtocolExtensionContainer.h b/asn1c_defs/all-defs/ProtocolExtensionContainer.h new file mode 100644 index 0000000..e36afc6 --- /dev/null +++ b/asn1c_defs/all-defs/ProtocolExtensionContainer.h @@ -0,0 +1,2486 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-Containers" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ProtocolExtensionContainer_H_ +#define _ProtocolExtensionContainer_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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_8231P0 { + A_SEQUENCE_OF(struct UE_ContextInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P0_t; +typedef struct ProtocolExtensionContainer_8231P1 { + A_SEQUENCE_OF(struct E_RABs_ToBeSetup_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P1_t; +typedef struct ProtocolExtensionContainer_8231P2 { + A_SEQUENCE_OF(struct UE_ContextReferenceAtSeNB_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P2_t; +typedef struct ProtocolExtensionContainer_8231P3 { + A_SEQUENCE_OF(struct UE_ContextReferenceAtWT_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P3_t; +typedef struct ProtocolExtensionContainer_8231P4 { + A_SEQUENCE_OF(struct UE_ContextReferenceAtSgNB_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P4_t; +typedef struct ProtocolExtensionContainer_8231P5 { + A_SEQUENCE_OF(struct E_RABs_Admitted_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P5_t; +typedef struct ProtocolExtensionContainer_8231P6 { + A_SEQUENCE_OF(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P6_t; +typedef struct ProtocolExtensionContainer_8231P7 { + A_SEQUENCE_OF(struct CellInformation_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P7_t; +typedef struct ProtocolExtensionContainer_8231P8 { + A_SEQUENCE_OF(struct ServedCellsToModify_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P8_t; +typedef struct ProtocolExtensionContainer_8231P9 { + A_SEQUENCE_OF(struct CellToReport_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P9_t; +typedef struct ProtocolExtensionContainer_8231P10 { + A_SEQUENCE_OF(struct MeasurementInitiationResult_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P10_t; +typedef struct ProtocolExtensionContainer_8231P11 { + A_SEQUENCE_OF(struct MeasurementFailureCause_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P11_t; +typedef struct ProtocolExtensionContainer_8231P12 { + A_SEQUENCE_OF(struct CompleteFailureCauseInformation_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P12_t; +typedef struct ProtocolExtensionContainer_8231P13 { + A_SEQUENCE_OF(struct CellMeasurementResult_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P13_t; +typedef struct ProtocolExtensionContainer_8231P14 { + A_SEQUENCE_OF(struct ServedCellsToActivate_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P14_t; +typedef struct ProtocolExtensionContainer_8231P15 { + A_SEQUENCE_OF(struct ActivatedCellList_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P15_t; +typedef struct ProtocolExtensionContainer_8231P16 { + A_SEQUENCE_OF(struct RNL_Header_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P16_t; +typedef struct ProtocolExtensionContainer_8231P17 { + A_SEQUENCE_OF(struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P17_t; +typedef struct ProtocolExtensionContainer_8231P18 { + A_SEQUENCE_OF(struct E_RABs_ToBeAdded_Item_Split_BearerExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P18_t; +typedef struct ProtocolExtensionContainer_8231P19 { + 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_8231P19_t; +typedef struct ProtocolExtensionContainer_8231P20 { + 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_8231P20_t; +typedef struct ProtocolExtensionContainer_8231P21 { + A_SEQUENCE_OF(struct ResponseInformationSeNBReconfComp_SuccessItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P21_t; +typedef struct ProtocolExtensionContainer_8231P22 { + A_SEQUENCE_OF(struct ResponseInformationSeNBReconfComp_RejectByMeNBItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P22_t; +typedef struct ProtocolExtensionContainer_8231P23 { + A_SEQUENCE_OF(struct UE_ContextInformationSeNBModReqExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P23_t; +typedef struct ProtocolExtensionContainer_8231P24 { + A_SEQUENCE_OF(struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P24_t; +typedef struct ProtocolExtensionContainer_8231P25 { + A_SEQUENCE_OF(struct E_RABs_ToBeAdded_ModReqItem_Split_BearerExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P25_t; +typedef struct ProtocolExtensionContainer_8231P26 { + A_SEQUENCE_OF(struct E_RABs_ToBeModified_ModReqItem_SCG_BearerExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P26_t; +typedef struct ProtocolExtensionContainer_8231P27 { + A_SEQUENCE_OF(struct E_RABs_ToBeModified_ModReqItem_Split_BearerExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P27_t; +typedef struct ProtocolExtensionContainer_8231P28 { + A_SEQUENCE_OF(struct E_RABs_ToBeReleased_ModReqItem_SCG_BearerExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P28_t; +typedef struct ProtocolExtensionContainer_8231P29 { + A_SEQUENCE_OF(struct E_RABs_ToBeReleased_ModReqItem_Split_BearerExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P29_t; +typedef struct ProtocolExtensionContainer_8231P30 { + 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_8231P30_t; +typedef struct ProtocolExtensionContainer_8231P31 { + 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_8231P31_t; +typedef struct ProtocolExtensionContainer_8231P32 { + 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_8231P32_t; +typedef struct ProtocolExtensionContainer_8231P33 { + 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_8231P33_t; +typedef struct ProtocolExtensionContainer_8231P34 { + 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_8231P34_t; +typedef struct ProtocolExtensionContainer_8231P35 { + 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_8231P35_t; +typedef struct ProtocolExtensionContainer_8231P36 { + A_SEQUENCE_OF(struct E_RABs_ToBeReleased_ModReqdItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P36_t; +typedef struct ProtocolExtensionContainer_8231P37 { + A_SEQUENCE_OF(struct E_RABs_ToBeReleased_RelReqItem_SCG_BearerExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P37_t; +typedef struct ProtocolExtensionContainer_8231P38 { + A_SEQUENCE_OF(struct E_RABs_ToBeReleased_RelReqItem_Split_BearerExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P38_t; +typedef struct ProtocolExtensionContainer_8231P39 { + A_SEQUENCE_OF(struct E_RABs_ToBeReleased_RelConfItem_SCG_BearerExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P39_t; +typedef struct ProtocolExtensionContainer_8231P40 { + A_SEQUENCE_OF(struct E_RABs_ToBeReleased_RelConfItem_Split_BearerExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P40_t; +typedef struct ProtocolExtensionContainer_8231P41 { + A_SEQUENCE_OF(struct E_RABs_SubjectToCounterCheckItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P41_t; +typedef struct ProtocolExtensionContainer_8231P42 { + A_SEQUENCE_OF(struct UE_ContextInformationRetrieve_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P42_t; +typedef struct ProtocolExtensionContainer_8231P43 { + A_SEQUENCE_OF(struct E_RABs_ToBeSetupRetrieve_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P43_t; +typedef struct ProtocolExtensionContainer_8231P44 { + A_SEQUENCE_OF(struct E_RABs_ToBeAdded_SgNBAddReq_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P44_t; +typedef struct ProtocolExtensionContainer_8231P45 { + A_SEQUENCE_OF(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresentExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P45_t; +typedef struct ProtocolExtensionContainer_8231P46 { + A_SEQUENCE_OF(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P46_t; +typedef struct ProtocolExtensionContainer_8231P47 { + A_SEQUENCE_OF(struct E_RABs_ToBeAdded_SgNBAddReqAck_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P47_t; +typedef struct ProtocolExtensionContainer_8231P48 { + 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_8231P48_t; +typedef struct ProtocolExtensionContainer_8231P49 { + 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_8231P49_t; +typedef struct ProtocolExtensionContainer_8231P50 { + A_SEQUENCE_OF(struct ResponseInformationSgNBReconfComp_SuccessItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P50_t; +typedef struct ProtocolExtensionContainer_8231P51 { + A_SEQUENCE_OF(struct ResponseInformationSgNBReconfComp_RejectByMeNBItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P51_t; +typedef struct ProtocolExtensionContainer_8231P52 { + A_SEQUENCE_OF(struct UE_ContextInformationSgNBModReqExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P52_t; +typedef struct ProtocolExtensionContainer_8231P53 { + A_SEQUENCE_OF(struct E_RABs_ToBeAdded_SgNBModReq_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P53_t; +typedef struct ProtocolExtensionContainer_8231P54 { + A_SEQUENCE_OF(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresentExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P54_t; +typedef struct ProtocolExtensionContainer_8231P55 { + A_SEQUENCE_OF(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P55_t; +typedef struct ProtocolExtensionContainer_8231P56 { + A_SEQUENCE_OF(struct E_RABs_ToBeModified_SgNBModReq_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P56_t; +typedef struct ProtocolExtensionContainer_8231P57 { + A_SEQUENCE_OF(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresentExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P57_t; +typedef struct ProtocolExtensionContainer_8231P58 { + A_SEQUENCE_OF(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P58_t; +typedef struct ProtocolExtensionContainer_8231P59 { + A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBModReq_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P59_t; +typedef struct ProtocolExtensionContainer_8231P60 { + A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresentExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P60_t; +typedef struct ProtocolExtensionContainer_8231P61 { + A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P61_t; +typedef struct ProtocolExtensionContainer_8231P62 { + A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P62_t; +typedef struct ProtocolExtensionContainer_8231P63 { + 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_8231P63_t; +typedef struct ProtocolExtensionContainer_8231P64 { + 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_8231P64_t; +typedef struct ProtocolExtensionContainer_8231P65 { + A_SEQUENCE_OF(struct E_RABs_ToBeAdded_SgNBModAck_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P65_t; +typedef struct ProtocolExtensionContainer_8231P66 { + 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_8231P66_t; +typedef struct ProtocolExtensionContainer_8231P67 { + 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_8231P67_t; +typedef struct ProtocolExtensionContainer_8231P68 { + A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBModAck_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P68_t; +typedef struct ProtocolExtensionContainer_8231P69 { + 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_8231P69_t; +typedef struct ProtocolExtensionContainer_8231P70 { + 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_8231P70_t; +typedef struct ProtocolExtensionContainer_8231P71 { + A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBModReqd_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P71_t; +typedef struct ProtocolExtensionContainer_8231P72 { + A_SEQUENCE_OF(struct E_RABs_ToBeModified_SgNBModReqd_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P72_t; +typedef struct ProtocolExtensionContainer_8231P73 { + A_SEQUENCE_OF(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P73_t; +typedef struct ProtocolExtensionContainer_8231P74 { + A_SEQUENCE_OF(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresentExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P74_t; +typedef struct ProtocolExtensionContainer_8231P75 { + A_SEQUENCE_OF(struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P75_t; +typedef struct ProtocolExtensionContainer_8231P76 { + A_SEQUENCE_OF(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresentExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P76_t; +typedef struct ProtocolExtensionContainer_8231P77 { + A_SEQUENCE_OF(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P77_t; +typedef struct ProtocolExtensionContainer_8231P78 { + A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBRelReq_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P78_t; +typedef struct ProtocolExtensionContainer_8231P79 { + A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresentExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P79_t; +typedef struct ProtocolExtensionContainer_8231P80 { + A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresentExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P80_t; +typedef struct ProtocolExtensionContainer_8231P81 { + A_SEQUENCE_OF(struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P81_t; +typedef struct ProtocolExtensionContainer_8231P82 { + A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBRelReqd_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P82_t; +typedef struct ProtocolExtensionContainer_8231P83 { + A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBRelConf_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P83_t; +typedef struct ProtocolExtensionContainer_8231P84 { + A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresentExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P84_t; +typedef struct ProtocolExtensionContainer_8231P85 { + A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresentExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P85_t; +typedef struct ProtocolExtensionContainer_8231P86 { + A_SEQUENCE_OF(struct E_RABs_SubjectToSgNBCounterCheck_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P86_t; +typedef struct ProtocolExtensionContainer_8231P87 { + A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBChaConf_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P87_t; +typedef struct ProtocolExtensionContainer_8231P88 { + A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresentExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P88_t; +typedef struct ProtocolExtensionContainer_8231P89 { + A_SEQUENCE_OF(struct E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresentExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P89_t; +typedef struct ProtocolExtensionContainer_8231P90 { + A_SEQUENCE_OF(struct ServedEUTRAcellsENDCX2Management_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P90_t; +typedef struct ProtocolExtensionContainer_8231P91 { + A_SEQUENCE_OF(struct En_gNBServedCells_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P91_t; +typedef struct ProtocolExtensionContainer_8231P92 { + A_SEQUENCE_OF(struct ServedNRCell_Information_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P92_t; +typedef struct ProtocolExtensionContainer_8231P93 { + A_SEQUENCE_OF(struct FDD_InfoServedNRCell_Information_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P93_t; +typedef struct ProtocolExtensionContainer_8231P94 { + A_SEQUENCE_OF(struct FDD_InfoNeighbourServedNRCell_Information_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P94_t; +typedef struct ProtocolExtensionContainer_8231P95 { + A_SEQUENCE_OF(struct TDD_InfoServedNRCell_Information_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P95_t; +typedef struct ProtocolExtensionContainer_8231P96 { + A_SEQUENCE_OF(struct TDD_InfoNeighbourServedNRCell_Information_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P96_t; +typedef struct ProtocolExtensionContainer_8231P97 { + A_SEQUENCE_OF(struct NRNeighbour_Information_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P97_t; +typedef struct ProtocolExtensionContainer_8231P98 { + A_SEQUENCE_OF(struct Limited_list_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P98_t; +typedef struct ProtocolExtensionContainer_8231P99 { + A_SEQUENCE_OF(struct ServedEUTRAcellsToModifyListENDCConfUpd_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P99_t; +typedef struct ProtocolExtensionContainer_8231P100 { + A_SEQUENCE_OF(struct ServedNRCellsToModify_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P100_t; +typedef struct ProtocolExtensionContainer_8231P101 { + A_SEQUENCE_OF(struct ServedNRCellsToActivate_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P101_t; +typedef struct ProtocolExtensionContainer_8231P102 { + A_SEQUENCE_OF(struct ActivatedNRCellList_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P102_t; +typedef struct ProtocolExtensionContainer_8231P103 { + A_SEQUENCE_OF(struct E_RABs_DataForwardingAddress_ItemExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P103_t; +typedef struct ProtocolExtensionContainer_8231P104 { + A_SEQUENCE_OF(struct ABSInformationFDD_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P104_t; +typedef struct ProtocolExtensionContainer_8231P105 { + A_SEQUENCE_OF(struct ABSInformationTDD_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P105_t; +typedef struct ProtocolExtensionContainer_8231P106 { + A_SEQUENCE_OF(struct ABS_Status_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P106_t; +typedef struct ProtocolExtensionContainer_8231P107 { + A_SEQUENCE_OF(struct AdditionalSpecialSubframe_Info_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P107_t; +typedef struct ProtocolExtensionContainer_8231P108 { + A_SEQUENCE_OF(struct AdditionalSpecialSubframeExtension_Info_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P108_t; +typedef struct ProtocolExtensionContainer_8231P109 { + A_SEQUENCE_OF(struct AllocationAndRetentionPriority_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P109_t; +typedef struct ProtocolExtensionContainer_8231P110 { + A_SEQUENCE_OF(struct AS_SecurityInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P110_t; +typedef struct ProtocolExtensionContainer_8231P111 { + A_SEQUENCE_OF(struct BluetoothMeasurementConfiguration_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P111_t; +typedef struct ProtocolExtensionContainer_8231P112 { + A_SEQUENCE_OF(struct CellBasedMDT_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P112_t; +typedef struct ProtocolExtensionContainer_8231P113 { + A_SEQUENCE_OF(struct CellBasedQMC_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P113_t; +typedef struct ProtocolExtensionContainer_8231P114 { + A_SEQUENCE_OF(struct CellReplacingInfo_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P114_t; +typedef struct ProtocolExtensionContainer_8231P115 { + A_SEQUENCE_OF(struct CellType_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P115_t; +typedef struct ProtocolExtensionContainer_8231P116 { + A_SEQUENCE_OF(struct CNTypeRestrictionsItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P116_t; +typedef struct ProtocolExtensionContainer_8231P117 { + A_SEQUENCE_OF(struct CoMPHypothesisSetItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P117_t; +typedef struct ProtocolExtensionContainer_8231P118 { + A_SEQUENCE_OF(struct CoMPInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P118_t; +typedef struct ProtocolExtensionContainer_8231P119 { + A_SEQUENCE_OF(struct CoMPInformationItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P119_t; +typedef struct ProtocolExtensionContainer_8231P120 { + A_SEQUENCE_OF(struct CoMPInformationStartTime_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P120_t; +typedef struct ProtocolExtensionContainer_8231P121 { + A_SEQUENCE_OF(struct CompositeAvailableCapacity_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P121_t; +typedef struct ProtocolExtensionContainer_8231P122 { + A_SEQUENCE_OF(struct CompositeAvailableCapacityGroup_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P122_t; +typedef struct ProtocolExtensionContainer_8231P123 { + A_SEQUENCE_OF(struct COUNTvalue_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P123_t; +typedef struct ProtocolExtensionContainer_8231P124 { + A_SEQUENCE_OF(struct COUNTValueExtended_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P124_t; +typedef struct ProtocolExtensionContainer_8231P125 { + A_SEQUENCE_OF(struct COUNTvaluePDCP_SNlength18_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P125_t; +typedef struct ProtocolExtensionContainer_8231P126 { + A_SEQUENCE_OF(struct CriticalityDiagnostics_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P126_t; +typedef struct ProtocolExtensionContainer_8231P127 { + A_SEQUENCE_OF(struct CriticalityDiagnostics_IE_List_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P127_t; +typedef struct ProtocolExtensionContainer_8231P128 { + A_SEQUENCE_OF(struct CSIReportList_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P128_t; +typedef struct ProtocolExtensionContainer_8231P129 { + A_SEQUENCE_OF(struct CSIReportPerCSIProcess_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P129_t; +typedef struct ProtocolExtensionContainer_8231P130 { + A_SEQUENCE_OF(struct CSIReportPerCSIProcessItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P130_t; +typedef struct ProtocolExtensionContainer_8231P131 { + A_SEQUENCE_OF(struct DataTrafficResourceIndication_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P131_t; +typedef struct ProtocolExtensionContainer_8231P132 { + A_SEQUENCE_OF(struct DeliveryStatus_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P132_t; +typedef struct ProtocolExtensionContainer_8231P133 { + A_SEQUENCE_OF(struct DynamicNAICSInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P133_t; +typedef struct ProtocolExtensionContainer_8231P134 { + A_SEQUENCE_OF(struct ECGI_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P134_t; +typedef struct ProtocolExtensionContainer_8231P135 { + A_SEQUENCE_OF(struct EnhancedRNTP_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P135_t; +typedef struct ProtocolExtensionContainer_8231P136 { + A_SEQUENCE_OF(struct EnhancedRNTPStartTime_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P136_t; +typedef struct ProtocolExtensionContainer_8231P137 { + A_SEQUENCE_OF(struct EN_DC_ResourceConfigurationExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P137_t; +typedef struct ProtocolExtensionContainer_8231P138 { + A_SEQUENCE_OF(struct ERABActivityNotifyItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P138_t; +typedef struct ProtocolExtensionContainer_8231P139 { + A_SEQUENCE_OF(struct E_RAB_Level_QoS_Parameters_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P139_t; +typedef struct ProtocolExtensionContainer_8231P140 { + A_SEQUENCE_OF(struct E_RAB_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P140_t; +typedef struct ProtocolExtensionContainer_8231P141 { + A_SEQUENCE_OF(struct E_RABUsageReport_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P141_t; +typedef struct ProtocolExtensionContainer_8231P142 { + A_SEQUENCE_OF(struct ExpectedUEBehaviour_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P142_t; +typedef struct ProtocolExtensionContainer_8231P143 { + A_SEQUENCE_OF(struct ExpectedUEActivityBehaviour_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P143_t; +typedef struct ProtocolExtensionContainer_8231P144 { + A_SEQUENCE_OF(struct ExtendedULInterferenceOverloadInfo_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P144_t; +typedef struct ProtocolExtensionContainer_8231P145 { + A_SEQUENCE_OF(struct FDD_Info_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P145_t; +typedef struct ProtocolExtensionContainer_8231P146 { + A_SEQUENCE_OF(struct ForbiddenTAs_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P146_t; +typedef struct ProtocolExtensionContainer_8231P147 { + A_SEQUENCE_OF(struct ForbiddenLAs_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P147_t; +typedef struct ProtocolExtensionContainer_8231P148 { + A_SEQUENCE_OF(struct FreqBandNrItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P148_t; +typedef struct ProtocolExtensionContainer_8231P149 { + A_SEQUENCE_OF(struct GBR_QosInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P149_t; +typedef struct ProtocolExtensionContainer_8231P150 { + A_SEQUENCE_OF(struct GlobalENB_ID_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P150_t; +typedef struct ProtocolExtensionContainer_8231P151 { + A_SEQUENCE_OF(struct GlobalGNB_ID_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P151_t; +typedef struct ProtocolExtensionContainer_8231P152 { + A_SEQUENCE_OF(struct GTPtunnelEndpoint_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P152_t; +typedef struct ProtocolExtensionContainer_8231P153 { + A_SEQUENCE_OF(struct GU_Group_ID_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P153_t; +typedef struct ProtocolExtensionContainer_8231P154 { + A_SEQUENCE_OF(struct GUMMEI_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P154_t; +typedef struct ProtocolExtensionContainer_8231P155 { + A_SEQUENCE_OF(struct HandoverRestrictionList_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P155_t; +typedef struct ProtocolExtensionContainer_8231P156 { + A_SEQUENCE_OF(struct HWLoadIndicator_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P156_t; +typedef struct ProtocolExtensionContainer_8231P157 { + A_SEQUENCE_OF(struct LastVisitedEUTRANCellInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P157_t; +typedef struct ProtocolExtensionContainer_8231P158 { + A_SEQUENCE_OF(struct LocationReportingInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P158_t; +typedef struct ProtocolExtensionContainer_8231P159 { + A_SEQUENCE_OF(struct M1PeriodicReporting_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P159_t; +typedef struct ProtocolExtensionContainer_8231P160 { + A_SEQUENCE_OF(struct M1ThresholdEventA2_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P160_t; +typedef struct ProtocolExtensionContainer_8231P161 { + A_SEQUENCE_OF(struct M3Configuration_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P161_t; +typedef struct ProtocolExtensionContainer_8231P162 { + A_SEQUENCE_OF(struct M4Configuration_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P162_t; +typedef struct ProtocolExtensionContainer_8231P163 { + A_SEQUENCE_OF(struct M5Configuration_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P163_t; +typedef struct ProtocolExtensionContainer_8231P164 { + A_SEQUENCE_OF(struct M6Configuration_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P164_t; +typedef struct ProtocolExtensionContainer_8231P165 { + A_SEQUENCE_OF(struct M7Configuration_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P165_t; +typedef struct ProtocolExtensionContainer_8231P166 { + A_SEQUENCE_OF(struct MDT_Configuration_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P166_t; +typedef struct ProtocolExtensionContainer_8231P167 { + A_SEQUENCE_OF(struct MeNBResourceCoordinationInformationExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P167_t; +typedef struct ProtocolExtensionContainer_8231P168 { + A_SEQUENCE_OF(struct MBSFN_Subframe_Info_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P168_t; +typedef struct ProtocolExtensionContainer_8231P169 { + A_SEQUENCE_OF(struct BandInfo_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P169_t; +typedef struct ProtocolExtensionContainer_8231P170 { + A_SEQUENCE_OF(struct SplitSRB_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P170_t; +typedef struct ProtocolExtensionContainer_8231P171 { + A_SEQUENCE_OF(struct UENRMeasurement_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P171_t; +typedef struct ProtocolExtensionContainer_8231P172 { + A_SEQUENCE_OF(struct Neighbour_Information_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P172_t; +typedef struct ProtocolExtensionContainer_8231P173 { + A_SEQUENCE_OF(struct NRFreqInfo_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P173_t; +typedef struct ProtocolExtensionContainer_8231P174 { + A_SEQUENCE_OF(struct NRCGI_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P174_t; +typedef struct ProtocolExtensionContainer_8231P175 { + A_SEQUENCE_OF(struct NR_TxBW_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P175_t; +typedef struct ProtocolExtensionContainer_8231P176 { + A_SEQUENCE_OF(struct NRUESecurityCapabilities_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P176_t; +typedef struct ProtocolExtensionContainer_8231P177 { + A_SEQUENCE_OF(struct PRACH_Configuration_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P177_t; +typedef struct ProtocolExtensionContainer_8231P178 { + A_SEQUENCE_OF(struct PLMNAreaBasedQMC_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P178_t; +typedef struct ProtocolExtensionContainer_8231P179 { + A_SEQUENCE_OF(struct ProSeAuthorized_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P179_t; +typedef struct ProtocolExtensionContainer_8231P180 { + A_SEQUENCE_OF(struct ProtectedEUTRAResourceIndication_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P180_t; +typedef struct ProtocolExtensionContainer_8231P181 { + A_SEQUENCE_OF(struct ProtectedFootprintTimePattern_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P181_t; +typedef struct ProtocolExtensionContainer_8231P182 { + A_SEQUENCE_OF(struct ProtectedResourceList_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P182_t; +typedef struct ProtocolExtensionContainer_8231P183 { + A_SEQUENCE_OF(struct RadioResourceStatus_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P183_t; +typedef struct ProtocolExtensionContainer_8231P184 { + A_SEQUENCE_OF(struct RelativeNarrowbandTxPower_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P184_t; +typedef struct ProtocolExtensionContainer_8231P185 { + A_SEQUENCE_OF(struct ReservedSubframePattern_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P185_t; +typedef struct ProtocolExtensionContainer_8231P186 { + A_SEQUENCE_OF(struct RLC_Status_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P186_t; +typedef struct ProtocolExtensionContainer_8231P187 { + A_SEQUENCE_OF(struct RSRPMeasurementResult_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P187_t; +typedef struct ProtocolExtensionContainer_8231P188 { + A_SEQUENCE_OF(struct RSRPMRList_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P188_t; +typedef struct ProtocolExtensionContainer_8231P189 { + A_SEQUENCE_OF(struct S1TNLLoadIndicator_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P189_t; +typedef struct ProtocolExtensionContainer_8231P190 { + A_SEQUENCE_OF(struct SecondaryRATUsageReport_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P190_t; +typedef struct ProtocolExtensionContainer_8231P191 { + A_SEQUENCE_OF(struct ServedCell_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P191_t; +typedef struct ProtocolExtensionContainer_8231P192 { + A_SEQUENCE_OF(struct ServedCell_Information_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P192_t; +typedef struct ProtocolExtensionContainer_8231P193 { + A_SEQUENCE_OF(struct SgNBResourceCoordinationInformationExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P193_t; +typedef struct ProtocolExtensionContainer_8231P194 { + A_SEQUENCE_OF(struct SpecialSubframe_Info_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P194_t; +typedef struct ProtocolExtensionContainer_8231P195 { + A_SEQUENCE_OF(struct SubbandCQI_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P195_t; +typedef struct ProtocolExtensionContainer_8231P196 { + A_SEQUENCE_OF(struct Subscription_Based_UE_DifferentiationInfo_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P196_t; +typedef struct ProtocolExtensionContainer_8231P197 { + A_SEQUENCE_OF(struct ScheduledCommunicationTime_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P197_t; +typedef struct ProtocolExtensionContainer_8231P198 { + A_SEQUENCE_OF(struct SubbandCQIItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P198_t; +typedef struct ProtocolExtensionContainer_8231P199 { + A_SEQUENCE_OF(struct SULInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P199_t; +typedef struct ProtocolExtensionContainer_8231P200 { + A_SEQUENCE_OF(struct SupportedSULFreqBandItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P200_t; +typedef struct ProtocolExtensionContainer_8231P201 { + A_SEQUENCE_OF(struct TABasedMDT_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P201_t; +typedef struct ProtocolExtensionContainer_8231P202 { + A_SEQUENCE_OF(struct TAIBasedMDT_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P202_t; +typedef struct ProtocolExtensionContainer_8231P203 { + A_SEQUENCE_OF(struct TAI_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P203_t; +typedef struct ProtocolExtensionContainer_8231P204 { + A_SEQUENCE_OF(struct TABasedQMC_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P204_t; +typedef struct ProtocolExtensionContainer_8231P205 { + A_SEQUENCE_OF(struct TAIBasedQMC_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P205_t; +typedef struct ProtocolExtensionContainer_8231P206 { + A_SEQUENCE_OF(struct TDD_Info_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P206_t; +typedef struct ProtocolExtensionContainer_8231P207 { + A_SEQUENCE_OF(struct TraceActivation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P207_t; +typedef struct ProtocolExtensionContainer_8231P208 { + A_SEQUENCE_OF(struct Tunnel_Information_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P208_t; +typedef struct ProtocolExtensionContainer_8231P209 { + A_SEQUENCE_OF(struct UEAggregate_MaximumBitrate_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P209_t; +typedef struct ProtocolExtensionContainer_8231P210 { + A_SEQUENCE_OF(struct UEAppLayerMeasConfig_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P210_t; +typedef struct ProtocolExtensionContainer_8231P211 { + A_SEQUENCE_OF(struct UESecurityCapabilities_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P211_t; +typedef struct ProtocolExtensionContainer_8231P212 { + A_SEQUENCE_OF(struct UE_Sidelink_Aggregate_MaximumBitRate_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P212_t; +typedef struct ProtocolExtensionContainer_8231P213 { + A_SEQUENCE_OF(struct UEsToBeResetList_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P213_t; +typedef struct ProtocolExtensionContainer_8231P214 { + A_SEQUENCE_OF(struct ULandDLSharing_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P214_t; +typedef struct ProtocolExtensionContainer_8231P215 { + A_SEQUENCE_OF(struct ULConfiguration_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P215_t; +typedef struct ProtocolExtensionContainer_8231P216 { + A_SEQUENCE_OF(struct UL_HighInterferenceIndicationInfo_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P216_t; +typedef struct ProtocolExtensionContainer_8231P217 { + A_SEQUENCE_OF(struct ULOnlySharing_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P217_t; +typedef struct ProtocolExtensionContainer_8231P218 { + A_SEQUENCE_OF(struct UsableABSInformationFDD_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P218_t; +typedef struct ProtocolExtensionContainer_8231P219 { + A_SEQUENCE_OF(struct UsableABSInformationTDD_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P219_t; +typedef struct ProtocolExtensionContainer_8231P220 { + A_SEQUENCE_OF(struct V2XServicesAuthorized_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P220_t; +typedef struct ProtocolExtensionContainer_8231P221 { + A_SEQUENCE_OF(struct WidebandCQI_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P221_t; +typedef struct ProtocolExtensionContainer_8231P222 { + A_SEQUENCE_OF(struct WLANMeasurementConfiguration_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolExtensionContainer_8231P222_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P0; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P0_specs_1; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P0_1[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P0_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P1; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P1_specs_3; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P1_3[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P1_constr_3; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P2; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P2_specs_5; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P2_5[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P2_constr_5; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P3; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P3_specs_7; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P3_7[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P3_constr_7; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P4; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P4_specs_9; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P4_9[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P4_constr_9; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P5; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P5_specs_11; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P5_11[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P5_constr_11; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P6; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P6_specs_13; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P6_13[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P6_constr_13; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P7; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P7_specs_15; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P7_15[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P7_constr_15; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P8; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P8_specs_17; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P8_17[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P8_constr_17; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P9; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P9_specs_19; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P9_19[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P9_constr_19; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P10; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P10_specs_21; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P10_21[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P10_constr_21; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P11; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P11_specs_23; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P11_23[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P11_constr_23; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P12; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P12_specs_25; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P12_25[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P12_constr_25; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P13; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P13_specs_27; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P13_27[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P13_constr_27; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P14; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P14_specs_29; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P14_29[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P14_constr_29; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P15; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P15_specs_31; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P15_31[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P15_constr_31; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P16; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P16_specs_33; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P16_33[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P16_constr_33; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P17; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P17_specs_35; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P17_35[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P17_constr_35; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P18; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P18_specs_37; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P18_37[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P18_constr_37; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P19; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P19_specs_39; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P19_39[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P19_constr_39; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P20; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P20_specs_41; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P20_41[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P20_constr_41; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P21; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P21_specs_43; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P21_43[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P21_constr_43; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P22; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P22_specs_45; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P22_45[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P22_constr_45; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P23; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P23_specs_47; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P23_47[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P23_constr_47; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P24; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P24_specs_49; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P24_49[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P24_constr_49; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P25; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P25_specs_51; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P25_51[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P25_constr_51; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P26; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P26_specs_53; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P26_53[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P26_constr_53; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P27; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P27_specs_55; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P27_55[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P27_constr_55; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P28; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P28_specs_57; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P28_57[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P28_constr_57; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P29; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P29_specs_59; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P29_59[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P29_constr_59; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P30; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P30_specs_61; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P30_61[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P30_constr_61; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P31; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P31_specs_63; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P31_63[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P31_constr_63; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P32; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P32_specs_65; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P32_65[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P32_constr_65; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P33; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P33_specs_67; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P33_67[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P33_constr_67; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P34; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P34_specs_69; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P34_69[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P34_constr_69; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P35; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P35_specs_71; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P35_71[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P35_constr_71; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P36; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P36_specs_73; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P36_73[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P36_constr_73; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P37; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P37_specs_75; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P37_75[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P37_constr_75; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P38; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P38_specs_77; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P38_77[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P38_constr_77; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P39; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P39_specs_79; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P39_79[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P39_constr_79; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P40; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P40_specs_81; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P40_81[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P40_constr_81; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P41; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P41_specs_83; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P41_83[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P41_constr_83; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P42; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P42_specs_85; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P42_85[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P42_constr_85; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P43; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P43_specs_87; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P43_87[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P43_constr_87; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P44; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P44_specs_89; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P44_89[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P44_constr_89; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P45; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P45_specs_91; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P45_91[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P45_constr_91; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P46; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P46_specs_93; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P46_93[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P46_constr_93; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P47; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P47_specs_95; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P47_95[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P47_constr_95; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P48; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P48_specs_97; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P48_97[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P48_constr_97; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P49; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P49_specs_99; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P49_99[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P49_constr_99; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P50; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P50_specs_101; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P50_101[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P50_constr_101; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P51; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P51_specs_103; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P51_103[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P51_constr_103; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P52; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P52_specs_105; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P52_105[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P52_constr_105; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P53; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P53_specs_107; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P53_107[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P53_constr_107; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P54; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P54_specs_109; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P54_109[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P54_constr_109; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P55; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P55_specs_111; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P55_111[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P55_constr_111; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P56; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P56_specs_113; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P56_113[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P56_constr_113; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P57; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P57_specs_115; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P57_115[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P57_constr_115; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P58; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P58_specs_117; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P58_117[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P58_constr_117; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P59; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P59_specs_119; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P59_119[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P59_constr_119; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P60; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P60_specs_121; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P60_121[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P60_constr_121; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P61; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P61_specs_123; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P61_123[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P61_constr_123; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P62; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P62_specs_125; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P62_125[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P62_constr_125; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P63; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P63_specs_127; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P63_127[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P63_constr_127; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P64; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P64_specs_129; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P64_129[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P64_constr_129; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P65; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P65_specs_131; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P65_131[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P65_constr_131; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P66; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P66_specs_133; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P66_133[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P66_constr_133; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P67; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P67_specs_135; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P67_135[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P67_constr_135; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P68; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P68_specs_137; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P68_137[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P68_constr_137; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P69; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P69_specs_139; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P69_139[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P69_constr_139; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P70; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P70_specs_141; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P70_141[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P70_constr_141; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P71; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P71_specs_143; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P71_143[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P71_constr_143; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P72; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P72_specs_145; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P72_145[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P72_constr_145; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P73; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P73_specs_147; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P73_147[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P73_constr_147; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P74; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P74_specs_149; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P74_149[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P74_constr_149; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P75; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P75_specs_151; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P75_151[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P75_constr_151; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P76; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P76_specs_153; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P76_153[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P76_constr_153; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P77; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P77_specs_155; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P77_155[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P77_constr_155; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P78; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P78_specs_157; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P78_157[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P78_constr_157; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P79; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P79_specs_159; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P79_159[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P79_constr_159; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P80; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P80_specs_161; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P80_161[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P80_constr_161; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P81; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P81_specs_163; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P81_163[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P81_constr_163; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P82; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P82_specs_165; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P82_165[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P82_constr_165; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P83; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P83_specs_167; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P83_167[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P83_constr_167; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P84; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P84_specs_169; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P84_169[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P84_constr_169; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P85; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P85_specs_171; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P85_171[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P85_constr_171; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P86; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P86_specs_173; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P86_173[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P86_constr_173; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P87; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P87_specs_175; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P87_175[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P87_constr_175; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P88; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P88_specs_177; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P88_177[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P88_constr_177; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P89; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P89_specs_179; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P89_179[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P89_constr_179; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P90; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P90_specs_181; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P90_181[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P90_constr_181; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P91; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P91_specs_183; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P91_183[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P91_constr_183; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P92; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P92_specs_185; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P92_185[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P92_constr_185; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P93; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P93_specs_187; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P93_187[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P93_constr_187; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P94; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P94_specs_189; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P94_189[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P94_constr_189; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P95; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P95_specs_191; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P95_191[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P95_constr_191; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P96; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P96_specs_193; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P96_193[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P96_constr_193; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P97; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P97_specs_195; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P97_195[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P97_constr_195; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P98; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P98_specs_197; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P98_197[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P98_constr_197; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P99; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P99_specs_199; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P99_199[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P99_constr_199; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P100; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P100_specs_201; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P100_201[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P100_constr_201; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P101; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P101_specs_203; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P101_203[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P101_constr_203; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P102; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P102_specs_205; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P102_205[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P102_constr_205; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P103; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P103_specs_207; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P103_207[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P103_constr_207; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P104; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P104_specs_209; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P104_209[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P104_constr_209; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P105; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P105_specs_211; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P105_211[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P105_constr_211; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P106; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P106_specs_213; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P106_213[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P106_constr_213; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P107; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P107_specs_215; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P107_215[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P107_constr_215; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P108; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P108_specs_217; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P108_217[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P108_constr_217; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P109; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P109_specs_219; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P109_219[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P109_constr_219; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P110; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P110_specs_221; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P110_221[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P110_constr_221; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P111; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P111_specs_223; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P111_223[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P111_constr_223; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P112; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P112_specs_225; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P112_225[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P112_constr_225; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P113; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P113_specs_227; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P113_227[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P113_constr_227; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P114; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P114_specs_229; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P114_229[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P114_constr_229; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P115; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P115_specs_231; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P115_231[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P115_constr_231; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P116; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P116_specs_233; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P116_233[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P116_constr_233; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P117; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P117_specs_235; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P117_235[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P117_constr_235; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P118; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P118_specs_237; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P118_237[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P118_constr_237; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P119; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P119_specs_239; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P119_239[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P119_constr_239; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P120; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P120_specs_241; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P120_241[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P120_constr_241; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P121; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P121_specs_243; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P121_243[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P121_constr_243; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P122; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P122_specs_245; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P122_245[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P122_constr_245; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P123; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P123_specs_247; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P123_247[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P123_constr_247; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P124; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P124_specs_249; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P124_249[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P124_constr_249; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P125; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P125_specs_251; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P125_251[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P125_constr_251; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P126; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P126_specs_253; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P126_253[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P126_constr_253; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P127; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P127_specs_255; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P127_255[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P127_constr_255; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P128; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P128_specs_257; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P128_257[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P128_constr_257; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P129; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P129_specs_259; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P129_259[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P129_constr_259; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P130; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P130_specs_261; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P130_261[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P130_constr_261; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P131; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P131_specs_263; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P131_263[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P131_constr_263; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P132; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P132_specs_265; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P132_265[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P132_constr_265; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P133; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P133_specs_267; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P133_267[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P133_constr_267; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P134; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P134_specs_269; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P134_269[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P134_constr_269; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P135; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P135_specs_271; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P135_271[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P135_constr_271; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P136; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P136_specs_273; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P136_273[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P136_constr_273; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P137; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P137_specs_275; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P137_275[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P137_constr_275; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P138; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P138_specs_277; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P138_277[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P138_constr_277; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P139; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P139_specs_279; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P139_279[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P139_constr_279; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P140; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P140_specs_281; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P140_281[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P140_constr_281; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P141; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P141_specs_283; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P141_283[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P141_constr_283; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P142; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P142_specs_285; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P142_285[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P142_constr_285; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P143; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P143_specs_287; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P143_287[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P143_constr_287; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P144; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P144_specs_289; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P144_289[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P144_constr_289; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P145; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P145_specs_291; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P145_291[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P145_constr_291; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P146; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P146_specs_293; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P146_293[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P146_constr_293; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P147; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P147_specs_295; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P147_295[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P147_constr_295; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P148; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P148_specs_297; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P148_297[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P148_constr_297; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P149; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P149_specs_299; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P149_299[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P149_constr_299; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P150; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P150_specs_301; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P150_301[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P150_constr_301; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P151; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P151_specs_303; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P151_303[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P151_constr_303; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P152; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P152_specs_305; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P152_305[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P152_constr_305; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P153; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P153_specs_307; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P153_307[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P153_constr_307; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P154; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P154_specs_309; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P154_309[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P154_constr_309; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P155; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P155_specs_311; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P155_311[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P155_constr_311; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P156; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P156_specs_313; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P156_313[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P156_constr_313; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P157; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P157_specs_315; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P157_315[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P157_constr_315; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P158; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P158_specs_317; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P158_317[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P158_constr_317; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P159; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P159_specs_319; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P159_319[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P159_constr_319; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P160; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P160_specs_321; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P160_321[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P160_constr_321; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P161; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P161_specs_323; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P161_323[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P161_constr_323; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P162; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P162_specs_325; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P162_325[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P162_constr_325; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P163; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P163_specs_327; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P163_327[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P163_constr_327; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P164; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P164_specs_329; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P164_329[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P164_constr_329; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P165; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P165_specs_331; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P165_331[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P165_constr_331; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P166; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P166_specs_333; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P166_333[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P166_constr_333; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P167; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P167_specs_335; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P167_335[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P167_constr_335; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P168; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P168_specs_337; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P168_337[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P168_constr_337; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P169; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P169_specs_339; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P169_339[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P169_constr_339; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P170; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P170_specs_341; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P170_341[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P170_constr_341; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P171; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P171_specs_343; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P171_343[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P171_constr_343; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P172; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P172_specs_345; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P172_345[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P172_constr_345; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P173; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P173_specs_347; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P173_347[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P173_constr_347; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P174; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P174_specs_349; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P174_349[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P174_constr_349; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P175; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P175_specs_351; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P175_351[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P175_constr_351; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P176; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P176_specs_353; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P176_353[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P176_constr_353; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P177; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P177_specs_355; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P177_355[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P177_constr_355; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P178; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P178_specs_357; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P178_357[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P178_constr_357; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P179; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P179_specs_359; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P179_359[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P179_constr_359; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P180; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P180_specs_361; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P180_361[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P180_constr_361; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P181; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P181_specs_363; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P181_363[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P181_constr_363; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P182; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P182_specs_365; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P182_365[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P182_constr_365; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P183; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P183_specs_367; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P183_367[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P183_constr_367; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P184; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P184_specs_369; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P184_369[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P184_constr_369; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P185; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P185_specs_371; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P185_371[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P185_constr_371; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P186; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P186_specs_373; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P186_373[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P186_constr_373; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P187; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P187_specs_375; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P187_375[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P187_constr_375; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P188; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P188_specs_377; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P188_377[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P188_constr_377; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P189; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P189_specs_379; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P189_379[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P189_constr_379; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P190; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P190_specs_381; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P190_381[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P190_constr_381; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P191; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P191_specs_383; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P191_383[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P191_constr_383; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P192; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P192_specs_385; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P192_385[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P192_constr_385; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P193; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P193_specs_387; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P193_387[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P193_constr_387; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P194; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P194_specs_389; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P194_389[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P194_constr_389; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P195; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P195_specs_391; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P195_391[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P195_constr_391; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P196; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P196_specs_393; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P196_393[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P196_constr_393; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P197; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P197_specs_395; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P197_395[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P197_constr_395; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P198; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P198_specs_397; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P198_397[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P198_constr_397; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P199; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P199_specs_399; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P199_399[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P199_constr_399; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P200; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P200_specs_401; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P200_401[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P200_constr_401; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P201; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P201_specs_403; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P201_403[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P201_constr_403; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P202; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P202_specs_405; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P202_405[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P202_constr_405; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P203; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P203_specs_407; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P203_407[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P203_constr_407; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P204; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P204_specs_409; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P204_409[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P204_constr_409; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P205; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P205_specs_411; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P205_411[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P205_constr_411; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P206; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P206_specs_413; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P206_413[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P206_constr_413; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P207; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P207_specs_415; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P207_415[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P207_constr_415; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P208; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P208_specs_417; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P208_417[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P208_constr_417; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P209; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P209_specs_419; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P209_419[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P209_constr_419; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P210; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P210_specs_421; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P210_421[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P210_constr_421; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P211; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P211_specs_423; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P211_423[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P211_constr_423; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P212; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P212_specs_425; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P212_425[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P212_constr_425; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P213; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P213_specs_427; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P213_427[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P213_constr_427; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P214; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P214_specs_429; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P214_429[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P214_constr_429; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P215; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P215_specs_431; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P215_431[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P215_constr_431; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P216; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P216_specs_433; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P216_433[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P216_constr_433; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P217; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P217_specs_435; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P217_435[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P217_constr_435; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P218; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P218_specs_437; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P218_437[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P218_constr_437; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P219; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P219_specs_439; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P219_439[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P219_constr_439; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P220; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P220_specs_441; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P220_441[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P220_constr_441; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P221; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P221_specs_443; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P221_443[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P221_constr_443; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolExtensionContainer_8231P222; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolExtensionContainer_8231P222_specs_445; +extern asn_TYPE_member_t asn_MBR_ProtocolExtensionContainer_8231P222_445[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolExtensionContainer_8231P222_constr_445; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtocolExtensionContainer_H_ */ +#include diff --git a/asn1c_defs/all-defs/ProtocolExtensionField.c b/asn1c_defs/all-defs/ProtocolExtensionField.c new file mode 100644 index 0000000..a64d418 --- /dev/null +++ b/asn1c_defs/all-defs/ProtocolExtensionField.c @@ -0,0 +1,41028 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-Containers" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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/asn1c_defs/all-defs/ProtocolExtensionField.h b/asn1c_defs/all-defs/ProtocolExtensionField.h new file mode 100644 index 0000000..d87f2b0 --- /dev/null +++ b/asn1c_defs/all-defs/ProtocolExtensionField.h @@ -0,0 +1,5163 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-Containers" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ProtocolExtensionField_H_ +#define _ProtocolExtensionField_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-ID.h" +#include "Criticality.h" +#include +#include +#include "ManagementBasedMDTallowed.h" +#include "Presence.h" +#include "MDTPLMNList.h" +#include "UESidelinkAggregateMaximumBitRate.h" +#include +#include +#include +#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 diff --git a/asn1c_defs/all-defs/ProtocolIE-Container.c b/asn1c_defs/all-defs/ProtocolIE-Container.c new file mode 100644 index 0000000..fc8dc91 --- /dev/null +++ b/asn1c_defs/all-defs/ProtocolIE-Container.c @@ -0,0 +1,4810 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-Containers" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ProtocolIE-Container.h" + +#include "ProtocolIE-Field.h" +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P0_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P1_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P2_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P3_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P4_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P5_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P6_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P7_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P8_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P9_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P10_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P11_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P12_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P13_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P14_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P15_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P16_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P17_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P18_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P19_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P20_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P21_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P22_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P23_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P24_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P25_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P26_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P27_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P28_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P29_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P30_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P31_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P32_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P33_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P34_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P35_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P36_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P37_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P38_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P39_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P40_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P41_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P42_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P43_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P44_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P45_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P46_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P47_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P48_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P49_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P50_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P51_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P52_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P53_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P54_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P55_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P56_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P57_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P58_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P59_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P60_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P61_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P62_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P63_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P64_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P65_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P66_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P67_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P68_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P69_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P70_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P71_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P72_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P73_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P74_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P75_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P76_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P77_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P78_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P79_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P80_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P81_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P82_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P83_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P84_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P85_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P86_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P87_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P88_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P89_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P90_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P91_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P92_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P93_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P94_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P95_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P96_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P97_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P98_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P99_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P100_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P101_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P102_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P103_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P104_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P105_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P106_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P107_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P108_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P109_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P110_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P111_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P112_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P113_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P114_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P115_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P116_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P117_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P118_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 */ +}; +asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P119_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_8180P0_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_8180P0_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P0_specs_1 = { + sizeof(struct ProtocolIE_Container_8180P0), + offsetof(struct ProtocolIE_Container_8180P0, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P0 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P0_tags_1, + sizeof(asn_DEF_ProtocolIE_Container_8180P0_tags_1) + /sizeof(asn_DEF_ProtocolIE_Container_8180P0_tags_1[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P0_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P0_tags_1) + /sizeof(asn_DEF_ProtocolIE_Container_8180P0_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P0_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P0_1, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P0_specs_1 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P1_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_8180P1_tags_3[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P1_specs_3 = { + sizeof(struct ProtocolIE_Container_8180P1), + offsetof(struct ProtocolIE_Container_8180P1, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P1 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P1_tags_3, + sizeof(asn_DEF_ProtocolIE_Container_8180P1_tags_3) + /sizeof(asn_DEF_ProtocolIE_Container_8180P1_tags_3[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P1_tags_3, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P1_tags_3) + /sizeof(asn_DEF_ProtocolIE_Container_8180P1_tags_3[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P1_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P1_3, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P1_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P2_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_8180P2_tags_5[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P2_specs_5 = { + sizeof(struct ProtocolIE_Container_8180P2), + offsetof(struct ProtocolIE_Container_8180P2, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P2 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P2_tags_5, + sizeof(asn_DEF_ProtocolIE_Container_8180P2_tags_5) + /sizeof(asn_DEF_ProtocolIE_Container_8180P2_tags_5[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P2_tags_5, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P2_tags_5) + /sizeof(asn_DEF_ProtocolIE_Container_8180P2_tags_5[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P2_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P2_5, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P2_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P3_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_8180P3_tags_7[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P3_specs_7 = { + sizeof(struct ProtocolIE_Container_8180P3), + offsetof(struct ProtocolIE_Container_8180P3, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P3 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P3_tags_7, + sizeof(asn_DEF_ProtocolIE_Container_8180P3_tags_7) + /sizeof(asn_DEF_ProtocolIE_Container_8180P3_tags_7[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P3_tags_7, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P3_tags_7) + /sizeof(asn_DEF_ProtocolIE_Container_8180P3_tags_7[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P3_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P3_7, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P3_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P4_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_8180P4_tags_9[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P4_specs_9 = { + sizeof(struct ProtocolIE_Container_8180P4), + offsetof(struct ProtocolIE_Container_8180P4, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P4 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P4_tags_9, + sizeof(asn_DEF_ProtocolIE_Container_8180P4_tags_9) + /sizeof(asn_DEF_ProtocolIE_Container_8180P4_tags_9[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P4_tags_9, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P4_tags_9) + /sizeof(asn_DEF_ProtocolIE_Container_8180P4_tags_9[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P4_constr_9, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P4_9, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P4_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P5_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_8180P5_tags_11[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P5_specs_11 = { + sizeof(struct ProtocolIE_Container_8180P5), + offsetof(struct ProtocolIE_Container_8180P5, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P5 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P5_tags_11, + sizeof(asn_DEF_ProtocolIE_Container_8180P5_tags_11) + /sizeof(asn_DEF_ProtocolIE_Container_8180P5_tags_11[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P5_tags_11, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P5_tags_11) + /sizeof(asn_DEF_ProtocolIE_Container_8180P5_tags_11[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P5_constr_11, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P5_11, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P5_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P6_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_8180P6_tags_13[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P6_specs_13 = { + sizeof(struct ProtocolIE_Container_8180P6), + offsetof(struct ProtocolIE_Container_8180P6, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P6 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P6_tags_13, + sizeof(asn_DEF_ProtocolIE_Container_8180P6_tags_13) + /sizeof(asn_DEF_ProtocolIE_Container_8180P6_tags_13[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P6_tags_13, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P6_tags_13) + /sizeof(asn_DEF_ProtocolIE_Container_8180P6_tags_13[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P6_constr_13, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P6_13, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P6_specs_13 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P7_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_8180P7_tags_15[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P7_specs_15 = { + sizeof(struct ProtocolIE_Container_8180P7), + offsetof(struct ProtocolIE_Container_8180P7, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P7 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P7_tags_15, + sizeof(asn_DEF_ProtocolIE_Container_8180P7_tags_15) + /sizeof(asn_DEF_ProtocolIE_Container_8180P7_tags_15[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P7_tags_15, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P7_tags_15) + /sizeof(asn_DEF_ProtocolIE_Container_8180P7_tags_15[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P7_constr_15, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P7_15, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P7_specs_15 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P8_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_8180P8_tags_17[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P8_specs_17 = { + sizeof(struct ProtocolIE_Container_8180P8), + offsetof(struct ProtocolIE_Container_8180P8, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P8 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P8_tags_17, + sizeof(asn_DEF_ProtocolIE_Container_8180P8_tags_17) + /sizeof(asn_DEF_ProtocolIE_Container_8180P8_tags_17[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P8_tags_17, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P8_tags_17) + /sizeof(asn_DEF_ProtocolIE_Container_8180P8_tags_17[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P8_constr_17, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P8_17, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P8_specs_17 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P9_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_8180P9_tags_19[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P9_specs_19 = { + sizeof(struct ProtocolIE_Container_8180P9), + offsetof(struct ProtocolIE_Container_8180P9, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P9 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P9_tags_19, + sizeof(asn_DEF_ProtocolIE_Container_8180P9_tags_19) + /sizeof(asn_DEF_ProtocolIE_Container_8180P9_tags_19[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P9_tags_19, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P9_tags_19) + /sizeof(asn_DEF_ProtocolIE_Container_8180P9_tags_19[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P9_constr_19, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P9_19, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P9_specs_19 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P10_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_8180P10_tags_21[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P10_specs_21 = { + sizeof(struct ProtocolIE_Container_8180P10), + offsetof(struct ProtocolIE_Container_8180P10, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P10 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P10_tags_21, + sizeof(asn_DEF_ProtocolIE_Container_8180P10_tags_21) + /sizeof(asn_DEF_ProtocolIE_Container_8180P10_tags_21[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P10_tags_21, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P10_tags_21) + /sizeof(asn_DEF_ProtocolIE_Container_8180P10_tags_21[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P10_constr_21, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P10_21, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P10_specs_21 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P11_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_8180P11_tags_23[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P11_specs_23 = { + sizeof(struct ProtocolIE_Container_8180P11), + offsetof(struct ProtocolIE_Container_8180P11, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P11 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P11_tags_23, + sizeof(asn_DEF_ProtocolIE_Container_8180P11_tags_23) + /sizeof(asn_DEF_ProtocolIE_Container_8180P11_tags_23[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P11_tags_23, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P11_tags_23) + /sizeof(asn_DEF_ProtocolIE_Container_8180P11_tags_23[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P11_constr_23, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P11_23, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P11_specs_23 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P12_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_8180P12_tags_25[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P12_specs_25 = { + sizeof(struct ProtocolIE_Container_8180P12), + offsetof(struct ProtocolIE_Container_8180P12, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P12 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P12_tags_25, + sizeof(asn_DEF_ProtocolIE_Container_8180P12_tags_25) + /sizeof(asn_DEF_ProtocolIE_Container_8180P12_tags_25[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P12_tags_25, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P12_tags_25) + /sizeof(asn_DEF_ProtocolIE_Container_8180P12_tags_25[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P12_constr_25, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P12_25, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P12_specs_25 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P13_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_8180P13_tags_27[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P13_specs_27 = { + sizeof(struct ProtocolIE_Container_8180P13), + offsetof(struct ProtocolIE_Container_8180P13, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P13 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P13_tags_27, + sizeof(asn_DEF_ProtocolIE_Container_8180P13_tags_27) + /sizeof(asn_DEF_ProtocolIE_Container_8180P13_tags_27[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P13_tags_27, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P13_tags_27) + /sizeof(asn_DEF_ProtocolIE_Container_8180P13_tags_27[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P13_constr_27, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P13_27, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P13_specs_27 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P14_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_8180P14_tags_29[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P14_specs_29 = { + sizeof(struct ProtocolIE_Container_8180P14), + offsetof(struct ProtocolIE_Container_8180P14, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P14 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P14_tags_29, + sizeof(asn_DEF_ProtocolIE_Container_8180P14_tags_29) + /sizeof(asn_DEF_ProtocolIE_Container_8180P14_tags_29[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P14_tags_29, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P14_tags_29) + /sizeof(asn_DEF_ProtocolIE_Container_8180P14_tags_29[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P14_constr_29, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P14_29, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P14_specs_29 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P15_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_8180P15_tags_31[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P15_specs_31 = { + sizeof(struct ProtocolIE_Container_8180P15), + offsetof(struct ProtocolIE_Container_8180P15, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P15 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P15_tags_31, + sizeof(asn_DEF_ProtocolIE_Container_8180P15_tags_31) + /sizeof(asn_DEF_ProtocolIE_Container_8180P15_tags_31[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P15_tags_31, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P15_tags_31) + /sizeof(asn_DEF_ProtocolIE_Container_8180P15_tags_31[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P15_constr_31, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P15_31, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P15_specs_31 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P16_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_8180P16_tags_33[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P16_specs_33 = { + sizeof(struct ProtocolIE_Container_8180P16), + offsetof(struct ProtocolIE_Container_8180P16, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P16 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P16_tags_33, + sizeof(asn_DEF_ProtocolIE_Container_8180P16_tags_33) + /sizeof(asn_DEF_ProtocolIE_Container_8180P16_tags_33[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P16_tags_33, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P16_tags_33) + /sizeof(asn_DEF_ProtocolIE_Container_8180P16_tags_33[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P16_constr_33, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P16_33, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P16_specs_33 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P17_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_8180P17_tags_35[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P17_specs_35 = { + sizeof(struct ProtocolIE_Container_8180P17), + offsetof(struct ProtocolIE_Container_8180P17, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P17 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P17_tags_35, + sizeof(asn_DEF_ProtocolIE_Container_8180P17_tags_35) + /sizeof(asn_DEF_ProtocolIE_Container_8180P17_tags_35[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P17_tags_35, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P17_tags_35) + /sizeof(asn_DEF_ProtocolIE_Container_8180P17_tags_35[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P17_constr_35, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P17_35, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P17_specs_35 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P18_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_8180P18_tags_37[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P18_specs_37 = { + sizeof(struct ProtocolIE_Container_8180P18), + offsetof(struct ProtocolIE_Container_8180P18, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P18 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P18_tags_37, + sizeof(asn_DEF_ProtocolIE_Container_8180P18_tags_37) + /sizeof(asn_DEF_ProtocolIE_Container_8180P18_tags_37[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P18_tags_37, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P18_tags_37) + /sizeof(asn_DEF_ProtocolIE_Container_8180P18_tags_37[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P18_constr_37, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P18_37, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P18_specs_37 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P19_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_8180P19_tags_39[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P19_specs_39 = { + sizeof(struct ProtocolIE_Container_8180P19), + offsetof(struct ProtocolIE_Container_8180P19, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P19 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P19_tags_39, + sizeof(asn_DEF_ProtocolIE_Container_8180P19_tags_39) + /sizeof(asn_DEF_ProtocolIE_Container_8180P19_tags_39[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P19_tags_39, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P19_tags_39) + /sizeof(asn_DEF_ProtocolIE_Container_8180P19_tags_39[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P19_constr_39, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P19_39, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P19_specs_39 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P20_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_8180P20_tags_41[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P20_specs_41 = { + sizeof(struct ProtocolIE_Container_8180P20), + offsetof(struct ProtocolIE_Container_8180P20, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P20 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P20_tags_41, + sizeof(asn_DEF_ProtocolIE_Container_8180P20_tags_41) + /sizeof(asn_DEF_ProtocolIE_Container_8180P20_tags_41[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P20_tags_41, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P20_tags_41) + /sizeof(asn_DEF_ProtocolIE_Container_8180P20_tags_41[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P20_constr_41, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P20_41, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P20_specs_41 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P21_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_8180P21_tags_43[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P21_specs_43 = { + sizeof(struct ProtocolIE_Container_8180P21), + offsetof(struct ProtocolIE_Container_8180P21, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P21 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P21_tags_43, + sizeof(asn_DEF_ProtocolIE_Container_8180P21_tags_43) + /sizeof(asn_DEF_ProtocolIE_Container_8180P21_tags_43[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P21_tags_43, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P21_tags_43) + /sizeof(asn_DEF_ProtocolIE_Container_8180P21_tags_43[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P21_constr_43, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P21_43, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P21_specs_43 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P22_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_8180P22_tags_45[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P22_specs_45 = { + sizeof(struct ProtocolIE_Container_8180P22), + offsetof(struct ProtocolIE_Container_8180P22, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P22 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P22_tags_45, + sizeof(asn_DEF_ProtocolIE_Container_8180P22_tags_45) + /sizeof(asn_DEF_ProtocolIE_Container_8180P22_tags_45[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P22_tags_45, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P22_tags_45) + /sizeof(asn_DEF_ProtocolIE_Container_8180P22_tags_45[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P22_constr_45, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P22_45, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P22_specs_45 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P23_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_8180P23_tags_47[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P23_specs_47 = { + sizeof(struct ProtocolIE_Container_8180P23), + offsetof(struct ProtocolIE_Container_8180P23, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P23 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P23_tags_47, + sizeof(asn_DEF_ProtocolIE_Container_8180P23_tags_47) + /sizeof(asn_DEF_ProtocolIE_Container_8180P23_tags_47[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P23_tags_47, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P23_tags_47) + /sizeof(asn_DEF_ProtocolIE_Container_8180P23_tags_47[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P23_constr_47, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P23_47, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P23_specs_47 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P24_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_8180P24_tags_49[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P24_specs_49 = { + sizeof(struct ProtocolIE_Container_8180P24), + offsetof(struct ProtocolIE_Container_8180P24, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P24 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P24_tags_49, + sizeof(asn_DEF_ProtocolIE_Container_8180P24_tags_49) + /sizeof(asn_DEF_ProtocolIE_Container_8180P24_tags_49[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P24_tags_49, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P24_tags_49) + /sizeof(asn_DEF_ProtocolIE_Container_8180P24_tags_49[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P24_constr_49, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P24_49, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P24_specs_49 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P25_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_8180P25_tags_51[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P25_specs_51 = { + sizeof(struct ProtocolIE_Container_8180P25), + offsetof(struct ProtocolIE_Container_8180P25, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P25 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P25_tags_51, + sizeof(asn_DEF_ProtocolIE_Container_8180P25_tags_51) + /sizeof(asn_DEF_ProtocolIE_Container_8180P25_tags_51[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P25_tags_51, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P25_tags_51) + /sizeof(asn_DEF_ProtocolIE_Container_8180P25_tags_51[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P25_constr_51, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P25_51, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P25_specs_51 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P26_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_8180P26_tags_53[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P26_specs_53 = { + sizeof(struct ProtocolIE_Container_8180P26), + offsetof(struct ProtocolIE_Container_8180P26, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P26 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P26_tags_53, + sizeof(asn_DEF_ProtocolIE_Container_8180P26_tags_53) + /sizeof(asn_DEF_ProtocolIE_Container_8180P26_tags_53[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P26_tags_53, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P26_tags_53) + /sizeof(asn_DEF_ProtocolIE_Container_8180P26_tags_53[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P26_constr_53, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P26_53, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P26_specs_53 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P27_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_8180P27_tags_55[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P27_specs_55 = { + sizeof(struct ProtocolIE_Container_8180P27), + offsetof(struct ProtocolIE_Container_8180P27, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P27 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P27_tags_55, + sizeof(asn_DEF_ProtocolIE_Container_8180P27_tags_55) + /sizeof(asn_DEF_ProtocolIE_Container_8180P27_tags_55[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P27_tags_55, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P27_tags_55) + /sizeof(asn_DEF_ProtocolIE_Container_8180P27_tags_55[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P27_constr_55, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P27_55, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P27_specs_55 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P28_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_8180P28_tags_57[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P28_specs_57 = { + sizeof(struct ProtocolIE_Container_8180P28), + offsetof(struct ProtocolIE_Container_8180P28, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P28 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P28_tags_57, + sizeof(asn_DEF_ProtocolIE_Container_8180P28_tags_57) + /sizeof(asn_DEF_ProtocolIE_Container_8180P28_tags_57[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P28_tags_57, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P28_tags_57) + /sizeof(asn_DEF_ProtocolIE_Container_8180P28_tags_57[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P28_constr_57, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P28_57, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P28_specs_57 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P29_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_8180P29_tags_59[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P29_specs_59 = { + sizeof(struct ProtocolIE_Container_8180P29), + offsetof(struct ProtocolIE_Container_8180P29, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P29 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P29_tags_59, + sizeof(asn_DEF_ProtocolIE_Container_8180P29_tags_59) + /sizeof(asn_DEF_ProtocolIE_Container_8180P29_tags_59[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P29_tags_59, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P29_tags_59) + /sizeof(asn_DEF_ProtocolIE_Container_8180P29_tags_59[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P29_constr_59, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P29_59, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P29_specs_59 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P30_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_8180P30_tags_61[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P30_specs_61 = { + sizeof(struct ProtocolIE_Container_8180P30), + offsetof(struct ProtocolIE_Container_8180P30, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P30 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P30_tags_61, + sizeof(asn_DEF_ProtocolIE_Container_8180P30_tags_61) + /sizeof(asn_DEF_ProtocolIE_Container_8180P30_tags_61[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P30_tags_61, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P30_tags_61) + /sizeof(asn_DEF_ProtocolIE_Container_8180P30_tags_61[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P30_constr_61, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P30_61, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P30_specs_61 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P31_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_8180P31_tags_63[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P31_specs_63 = { + sizeof(struct ProtocolIE_Container_8180P31), + offsetof(struct ProtocolIE_Container_8180P31, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P31 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P31_tags_63, + sizeof(asn_DEF_ProtocolIE_Container_8180P31_tags_63) + /sizeof(asn_DEF_ProtocolIE_Container_8180P31_tags_63[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P31_tags_63, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P31_tags_63) + /sizeof(asn_DEF_ProtocolIE_Container_8180P31_tags_63[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P31_constr_63, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P31_63, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P31_specs_63 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P32_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_8180P32_tags_65[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P32_specs_65 = { + sizeof(struct ProtocolIE_Container_8180P32), + offsetof(struct ProtocolIE_Container_8180P32, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P32 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P32_tags_65, + sizeof(asn_DEF_ProtocolIE_Container_8180P32_tags_65) + /sizeof(asn_DEF_ProtocolIE_Container_8180P32_tags_65[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P32_tags_65, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P32_tags_65) + /sizeof(asn_DEF_ProtocolIE_Container_8180P32_tags_65[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P32_constr_65, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P32_65, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P32_specs_65 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P33_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_8180P33_tags_67[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P33_specs_67 = { + sizeof(struct ProtocolIE_Container_8180P33), + offsetof(struct ProtocolIE_Container_8180P33, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P33 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P33_tags_67, + sizeof(asn_DEF_ProtocolIE_Container_8180P33_tags_67) + /sizeof(asn_DEF_ProtocolIE_Container_8180P33_tags_67[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P33_tags_67, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P33_tags_67) + /sizeof(asn_DEF_ProtocolIE_Container_8180P33_tags_67[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P33_constr_67, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P33_67, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P33_specs_67 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P34_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_8180P34_tags_69[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P34_specs_69 = { + sizeof(struct ProtocolIE_Container_8180P34), + offsetof(struct ProtocolIE_Container_8180P34, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P34 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P34_tags_69, + sizeof(asn_DEF_ProtocolIE_Container_8180P34_tags_69) + /sizeof(asn_DEF_ProtocolIE_Container_8180P34_tags_69[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P34_tags_69, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P34_tags_69) + /sizeof(asn_DEF_ProtocolIE_Container_8180P34_tags_69[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P34_constr_69, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P34_69, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P34_specs_69 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P35_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_8180P35_tags_71[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P35_specs_71 = { + sizeof(struct ProtocolIE_Container_8180P35), + offsetof(struct ProtocolIE_Container_8180P35, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P35 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P35_tags_71, + sizeof(asn_DEF_ProtocolIE_Container_8180P35_tags_71) + /sizeof(asn_DEF_ProtocolIE_Container_8180P35_tags_71[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P35_tags_71, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P35_tags_71) + /sizeof(asn_DEF_ProtocolIE_Container_8180P35_tags_71[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P35_constr_71, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P35_71, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P35_specs_71 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P36_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_8180P36_tags_73[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P36_specs_73 = { + sizeof(struct ProtocolIE_Container_8180P36), + offsetof(struct ProtocolIE_Container_8180P36, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P36 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P36_tags_73, + sizeof(asn_DEF_ProtocolIE_Container_8180P36_tags_73) + /sizeof(asn_DEF_ProtocolIE_Container_8180P36_tags_73[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P36_tags_73, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P36_tags_73) + /sizeof(asn_DEF_ProtocolIE_Container_8180P36_tags_73[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P36_constr_73, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P36_73, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P36_specs_73 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P37_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_8180P37_tags_75[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P37_specs_75 = { + sizeof(struct ProtocolIE_Container_8180P37), + offsetof(struct ProtocolIE_Container_8180P37, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P37 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P37_tags_75, + sizeof(asn_DEF_ProtocolIE_Container_8180P37_tags_75) + /sizeof(asn_DEF_ProtocolIE_Container_8180P37_tags_75[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P37_tags_75, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P37_tags_75) + /sizeof(asn_DEF_ProtocolIE_Container_8180P37_tags_75[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P37_constr_75, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P37_75, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P37_specs_75 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P38_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_8180P38_tags_77[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P38_specs_77 = { + sizeof(struct ProtocolIE_Container_8180P38), + offsetof(struct ProtocolIE_Container_8180P38, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P38 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P38_tags_77, + sizeof(asn_DEF_ProtocolIE_Container_8180P38_tags_77) + /sizeof(asn_DEF_ProtocolIE_Container_8180P38_tags_77[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P38_tags_77, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P38_tags_77) + /sizeof(asn_DEF_ProtocolIE_Container_8180P38_tags_77[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P38_constr_77, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P38_77, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P38_specs_77 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P39_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_8180P39_tags_79[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P39_specs_79 = { + sizeof(struct ProtocolIE_Container_8180P39), + offsetof(struct ProtocolIE_Container_8180P39, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P39 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P39_tags_79, + sizeof(asn_DEF_ProtocolIE_Container_8180P39_tags_79) + /sizeof(asn_DEF_ProtocolIE_Container_8180P39_tags_79[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P39_tags_79, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P39_tags_79) + /sizeof(asn_DEF_ProtocolIE_Container_8180P39_tags_79[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P39_constr_79, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P39_79, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P39_specs_79 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P40_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_8180P40_tags_81[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P40_specs_81 = { + sizeof(struct ProtocolIE_Container_8180P40), + offsetof(struct ProtocolIE_Container_8180P40, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P40 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P40_tags_81, + sizeof(asn_DEF_ProtocolIE_Container_8180P40_tags_81) + /sizeof(asn_DEF_ProtocolIE_Container_8180P40_tags_81[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P40_tags_81, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P40_tags_81) + /sizeof(asn_DEF_ProtocolIE_Container_8180P40_tags_81[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P40_constr_81, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P40_81, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P40_specs_81 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P41_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_8180P41_tags_83[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P41_specs_83 = { + sizeof(struct ProtocolIE_Container_8180P41), + offsetof(struct ProtocolIE_Container_8180P41, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P41 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P41_tags_83, + sizeof(asn_DEF_ProtocolIE_Container_8180P41_tags_83) + /sizeof(asn_DEF_ProtocolIE_Container_8180P41_tags_83[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P41_tags_83, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P41_tags_83) + /sizeof(asn_DEF_ProtocolIE_Container_8180P41_tags_83[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P41_constr_83, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P41_83, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P41_specs_83 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P42_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_8180P42_tags_85[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P42_specs_85 = { + sizeof(struct ProtocolIE_Container_8180P42), + offsetof(struct ProtocolIE_Container_8180P42, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P42 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P42_tags_85, + sizeof(asn_DEF_ProtocolIE_Container_8180P42_tags_85) + /sizeof(asn_DEF_ProtocolIE_Container_8180P42_tags_85[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P42_tags_85, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P42_tags_85) + /sizeof(asn_DEF_ProtocolIE_Container_8180P42_tags_85[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P42_constr_85, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P42_85, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P42_specs_85 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P43_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_8180P43_tags_87[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P43_specs_87 = { + sizeof(struct ProtocolIE_Container_8180P43), + offsetof(struct ProtocolIE_Container_8180P43, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P43 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P43_tags_87, + sizeof(asn_DEF_ProtocolIE_Container_8180P43_tags_87) + /sizeof(asn_DEF_ProtocolIE_Container_8180P43_tags_87[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P43_tags_87, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P43_tags_87) + /sizeof(asn_DEF_ProtocolIE_Container_8180P43_tags_87[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P43_constr_87, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P43_87, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P43_specs_87 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P44_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_8180P44_tags_89[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P44_specs_89 = { + sizeof(struct ProtocolIE_Container_8180P44), + offsetof(struct ProtocolIE_Container_8180P44, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P44 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P44_tags_89, + sizeof(asn_DEF_ProtocolIE_Container_8180P44_tags_89) + /sizeof(asn_DEF_ProtocolIE_Container_8180P44_tags_89[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P44_tags_89, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P44_tags_89) + /sizeof(asn_DEF_ProtocolIE_Container_8180P44_tags_89[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P44_constr_89, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P44_89, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P44_specs_89 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P45_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_8180P45_tags_91[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P45_specs_91 = { + sizeof(struct ProtocolIE_Container_8180P45), + offsetof(struct ProtocolIE_Container_8180P45, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P45 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P45_tags_91, + sizeof(asn_DEF_ProtocolIE_Container_8180P45_tags_91) + /sizeof(asn_DEF_ProtocolIE_Container_8180P45_tags_91[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P45_tags_91, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P45_tags_91) + /sizeof(asn_DEF_ProtocolIE_Container_8180P45_tags_91[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P45_constr_91, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P45_91, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P45_specs_91 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P46_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_8180P46_tags_93[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P46_specs_93 = { + sizeof(struct ProtocolIE_Container_8180P46), + offsetof(struct ProtocolIE_Container_8180P46, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P46 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P46_tags_93, + sizeof(asn_DEF_ProtocolIE_Container_8180P46_tags_93) + /sizeof(asn_DEF_ProtocolIE_Container_8180P46_tags_93[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P46_tags_93, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P46_tags_93) + /sizeof(asn_DEF_ProtocolIE_Container_8180P46_tags_93[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P46_constr_93, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P46_93, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P46_specs_93 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P47_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_8180P47_tags_95[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P47_specs_95 = { + sizeof(struct ProtocolIE_Container_8180P47), + offsetof(struct ProtocolIE_Container_8180P47, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P47 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P47_tags_95, + sizeof(asn_DEF_ProtocolIE_Container_8180P47_tags_95) + /sizeof(asn_DEF_ProtocolIE_Container_8180P47_tags_95[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P47_tags_95, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P47_tags_95) + /sizeof(asn_DEF_ProtocolIE_Container_8180P47_tags_95[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P47_constr_95, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P47_95, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P47_specs_95 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P48_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_8180P48_tags_97[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P48_specs_97 = { + sizeof(struct ProtocolIE_Container_8180P48), + offsetof(struct ProtocolIE_Container_8180P48, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P48 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P48_tags_97, + sizeof(asn_DEF_ProtocolIE_Container_8180P48_tags_97) + /sizeof(asn_DEF_ProtocolIE_Container_8180P48_tags_97[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P48_tags_97, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P48_tags_97) + /sizeof(asn_DEF_ProtocolIE_Container_8180P48_tags_97[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P48_constr_97, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P48_97, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P48_specs_97 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P49_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_8180P49_tags_99[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P49_specs_99 = { + sizeof(struct ProtocolIE_Container_8180P49), + offsetof(struct ProtocolIE_Container_8180P49, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P49 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P49_tags_99, + sizeof(asn_DEF_ProtocolIE_Container_8180P49_tags_99) + /sizeof(asn_DEF_ProtocolIE_Container_8180P49_tags_99[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P49_tags_99, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P49_tags_99) + /sizeof(asn_DEF_ProtocolIE_Container_8180P49_tags_99[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P49_constr_99, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P49_99, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P49_specs_99 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P50_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_8180P50_tags_101[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P50_specs_101 = { + sizeof(struct ProtocolIE_Container_8180P50), + offsetof(struct ProtocolIE_Container_8180P50, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P50 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P50_tags_101, + sizeof(asn_DEF_ProtocolIE_Container_8180P50_tags_101) + /sizeof(asn_DEF_ProtocolIE_Container_8180P50_tags_101[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P50_tags_101, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P50_tags_101) + /sizeof(asn_DEF_ProtocolIE_Container_8180P50_tags_101[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P50_constr_101, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P50_101, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P50_specs_101 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P51_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_8180P51_tags_103[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P51_specs_103 = { + sizeof(struct ProtocolIE_Container_8180P51), + offsetof(struct ProtocolIE_Container_8180P51, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P51 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P51_tags_103, + sizeof(asn_DEF_ProtocolIE_Container_8180P51_tags_103) + /sizeof(asn_DEF_ProtocolIE_Container_8180P51_tags_103[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P51_tags_103, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P51_tags_103) + /sizeof(asn_DEF_ProtocolIE_Container_8180P51_tags_103[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P51_constr_103, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P51_103, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P51_specs_103 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P52_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_8180P52_tags_105[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P52_specs_105 = { + sizeof(struct ProtocolIE_Container_8180P52), + offsetof(struct ProtocolIE_Container_8180P52, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P52 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P52_tags_105, + sizeof(asn_DEF_ProtocolIE_Container_8180P52_tags_105) + /sizeof(asn_DEF_ProtocolIE_Container_8180P52_tags_105[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P52_tags_105, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P52_tags_105) + /sizeof(asn_DEF_ProtocolIE_Container_8180P52_tags_105[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P52_constr_105, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P52_105, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P52_specs_105 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P53_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_8180P53_tags_107[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P53_specs_107 = { + sizeof(struct ProtocolIE_Container_8180P53), + offsetof(struct ProtocolIE_Container_8180P53, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P53 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P53_tags_107, + sizeof(asn_DEF_ProtocolIE_Container_8180P53_tags_107) + /sizeof(asn_DEF_ProtocolIE_Container_8180P53_tags_107[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P53_tags_107, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P53_tags_107) + /sizeof(asn_DEF_ProtocolIE_Container_8180P53_tags_107[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P53_constr_107, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P53_107, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P53_specs_107 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P54_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_8180P54_tags_109[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P54_specs_109 = { + sizeof(struct ProtocolIE_Container_8180P54), + offsetof(struct ProtocolIE_Container_8180P54, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P54 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P54_tags_109, + sizeof(asn_DEF_ProtocolIE_Container_8180P54_tags_109) + /sizeof(asn_DEF_ProtocolIE_Container_8180P54_tags_109[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P54_tags_109, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P54_tags_109) + /sizeof(asn_DEF_ProtocolIE_Container_8180P54_tags_109[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P54_constr_109, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P54_109, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P54_specs_109 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P55_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_8180P55_tags_111[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P55_specs_111 = { + sizeof(struct ProtocolIE_Container_8180P55), + offsetof(struct ProtocolIE_Container_8180P55, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P55 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P55_tags_111, + sizeof(asn_DEF_ProtocolIE_Container_8180P55_tags_111) + /sizeof(asn_DEF_ProtocolIE_Container_8180P55_tags_111[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P55_tags_111, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P55_tags_111) + /sizeof(asn_DEF_ProtocolIE_Container_8180P55_tags_111[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P55_constr_111, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P55_111, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P55_specs_111 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P56_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_8180P56_tags_113[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P56_specs_113 = { + sizeof(struct ProtocolIE_Container_8180P56), + offsetof(struct ProtocolIE_Container_8180P56, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P56 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P56_tags_113, + sizeof(asn_DEF_ProtocolIE_Container_8180P56_tags_113) + /sizeof(asn_DEF_ProtocolIE_Container_8180P56_tags_113[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P56_tags_113, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P56_tags_113) + /sizeof(asn_DEF_ProtocolIE_Container_8180P56_tags_113[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P56_constr_113, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P56_113, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P56_specs_113 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P57_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_8180P57_tags_115[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P57_specs_115 = { + sizeof(struct ProtocolIE_Container_8180P57), + offsetof(struct ProtocolIE_Container_8180P57, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P57 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P57_tags_115, + sizeof(asn_DEF_ProtocolIE_Container_8180P57_tags_115) + /sizeof(asn_DEF_ProtocolIE_Container_8180P57_tags_115[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P57_tags_115, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P57_tags_115) + /sizeof(asn_DEF_ProtocolIE_Container_8180P57_tags_115[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P57_constr_115, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P57_115, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P57_specs_115 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P58_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_8180P58_tags_117[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P58_specs_117 = { + sizeof(struct ProtocolIE_Container_8180P58), + offsetof(struct ProtocolIE_Container_8180P58, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P58 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P58_tags_117, + sizeof(asn_DEF_ProtocolIE_Container_8180P58_tags_117) + /sizeof(asn_DEF_ProtocolIE_Container_8180P58_tags_117[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P58_tags_117, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P58_tags_117) + /sizeof(asn_DEF_ProtocolIE_Container_8180P58_tags_117[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P58_constr_117, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P58_117, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P58_specs_117 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P59_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_8180P59_tags_119[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P59_specs_119 = { + sizeof(struct ProtocolIE_Container_8180P59), + offsetof(struct ProtocolIE_Container_8180P59, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P59 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P59_tags_119, + sizeof(asn_DEF_ProtocolIE_Container_8180P59_tags_119) + /sizeof(asn_DEF_ProtocolIE_Container_8180P59_tags_119[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P59_tags_119, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P59_tags_119) + /sizeof(asn_DEF_ProtocolIE_Container_8180P59_tags_119[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P59_constr_119, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P59_119, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P59_specs_119 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P60_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_8180P60_tags_121[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P60_specs_121 = { + sizeof(struct ProtocolIE_Container_8180P60), + offsetof(struct ProtocolIE_Container_8180P60, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P60 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P60_tags_121, + sizeof(asn_DEF_ProtocolIE_Container_8180P60_tags_121) + /sizeof(asn_DEF_ProtocolIE_Container_8180P60_tags_121[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P60_tags_121, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P60_tags_121) + /sizeof(asn_DEF_ProtocolIE_Container_8180P60_tags_121[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P60_constr_121, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P60_121, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P60_specs_121 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P61_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_8180P61_tags_123[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P61_specs_123 = { + sizeof(struct ProtocolIE_Container_8180P61), + offsetof(struct ProtocolIE_Container_8180P61, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P61 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P61_tags_123, + sizeof(asn_DEF_ProtocolIE_Container_8180P61_tags_123) + /sizeof(asn_DEF_ProtocolIE_Container_8180P61_tags_123[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P61_tags_123, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P61_tags_123) + /sizeof(asn_DEF_ProtocolIE_Container_8180P61_tags_123[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P61_constr_123, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P61_123, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P61_specs_123 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P62_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_8180P62_tags_125[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P62_specs_125 = { + sizeof(struct ProtocolIE_Container_8180P62), + offsetof(struct ProtocolIE_Container_8180P62, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P62 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P62_tags_125, + sizeof(asn_DEF_ProtocolIE_Container_8180P62_tags_125) + /sizeof(asn_DEF_ProtocolIE_Container_8180P62_tags_125[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P62_tags_125, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P62_tags_125) + /sizeof(asn_DEF_ProtocolIE_Container_8180P62_tags_125[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P62_constr_125, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P62_125, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P62_specs_125 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P63_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_8180P63_tags_127[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P63_specs_127 = { + sizeof(struct ProtocolIE_Container_8180P63), + offsetof(struct ProtocolIE_Container_8180P63, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P63 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P63_tags_127, + sizeof(asn_DEF_ProtocolIE_Container_8180P63_tags_127) + /sizeof(asn_DEF_ProtocolIE_Container_8180P63_tags_127[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P63_tags_127, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P63_tags_127) + /sizeof(asn_DEF_ProtocolIE_Container_8180P63_tags_127[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P63_constr_127, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P63_127, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P63_specs_127 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P64_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_8180P64_tags_129[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P64_specs_129 = { + sizeof(struct ProtocolIE_Container_8180P64), + offsetof(struct ProtocolIE_Container_8180P64, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P64 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P64_tags_129, + sizeof(asn_DEF_ProtocolIE_Container_8180P64_tags_129) + /sizeof(asn_DEF_ProtocolIE_Container_8180P64_tags_129[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P64_tags_129, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P64_tags_129) + /sizeof(asn_DEF_ProtocolIE_Container_8180P64_tags_129[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P64_constr_129, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P64_129, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P64_specs_129 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P65_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_8180P65_tags_131[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P65_specs_131 = { + sizeof(struct ProtocolIE_Container_8180P65), + offsetof(struct ProtocolIE_Container_8180P65, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P65 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P65_tags_131, + sizeof(asn_DEF_ProtocolIE_Container_8180P65_tags_131) + /sizeof(asn_DEF_ProtocolIE_Container_8180P65_tags_131[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P65_tags_131, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P65_tags_131) + /sizeof(asn_DEF_ProtocolIE_Container_8180P65_tags_131[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P65_constr_131, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P65_131, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P65_specs_131 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P66_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_8180P66_tags_133[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P66_specs_133 = { + sizeof(struct ProtocolIE_Container_8180P66), + offsetof(struct ProtocolIE_Container_8180P66, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P66 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P66_tags_133, + sizeof(asn_DEF_ProtocolIE_Container_8180P66_tags_133) + /sizeof(asn_DEF_ProtocolIE_Container_8180P66_tags_133[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P66_tags_133, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P66_tags_133) + /sizeof(asn_DEF_ProtocolIE_Container_8180P66_tags_133[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P66_constr_133, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P66_133, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P66_specs_133 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P67_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_8180P67_tags_135[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P67_specs_135 = { + sizeof(struct ProtocolIE_Container_8180P67), + offsetof(struct ProtocolIE_Container_8180P67, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P67 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P67_tags_135, + sizeof(asn_DEF_ProtocolIE_Container_8180P67_tags_135) + /sizeof(asn_DEF_ProtocolIE_Container_8180P67_tags_135[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P67_tags_135, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P67_tags_135) + /sizeof(asn_DEF_ProtocolIE_Container_8180P67_tags_135[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P67_constr_135, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P67_135, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P67_specs_135 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P68_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_8180P68_tags_137[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P68_specs_137 = { + sizeof(struct ProtocolIE_Container_8180P68), + offsetof(struct ProtocolIE_Container_8180P68, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P68 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P68_tags_137, + sizeof(asn_DEF_ProtocolIE_Container_8180P68_tags_137) + /sizeof(asn_DEF_ProtocolIE_Container_8180P68_tags_137[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P68_tags_137, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P68_tags_137) + /sizeof(asn_DEF_ProtocolIE_Container_8180P68_tags_137[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P68_constr_137, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P68_137, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P68_specs_137 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P69_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_8180P69_tags_139[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P69_specs_139 = { + sizeof(struct ProtocolIE_Container_8180P69), + offsetof(struct ProtocolIE_Container_8180P69, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P69 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P69_tags_139, + sizeof(asn_DEF_ProtocolIE_Container_8180P69_tags_139) + /sizeof(asn_DEF_ProtocolIE_Container_8180P69_tags_139[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P69_tags_139, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P69_tags_139) + /sizeof(asn_DEF_ProtocolIE_Container_8180P69_tags_139[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P69_constr_139, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P69_139, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P69_specs_139 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P70_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_8180P70_tags_141[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P70_specs_141 = { + sizeof(struct ProtocolIE_Container_8180P70), + offsetof(struct ProtocolIE_Container_8180P70, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P70 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P70_tags_141, + sizeof(asn_DEF_ProtocolIE_Container_8180P70_tags_141) + /sizeof(asn_DEF_ProtocolIE_Container_8180P70_tags_141[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P70_tags_141, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P70_tags_141) + /sizeof(asn_DEF_ProtocolIE_Container_8180P70_tags_141[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P70_constr_141, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P70_141, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P70_specs_141 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P71_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_8180P71_tags_143[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P71_specs_143 = { + sizeof(struct ProtocolIE_Container_8180P71), + offsetof(struct ProtocolIE_Container_8180P71, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P71 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P71_tags_143, + sizeof(asn_DEF_ProtocolIE_Container_8180P71_tags_143) + /sizeof(asn_DEF_ProtocolIE_Container_8180P71_tags_143[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P71_tags_143, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P71_tags_143) + /sizeof(asn_DEF_ProtocolIE_Container_8180P71_tags_143[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P71_constr_143, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P71_143, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P71_specs_143 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P72_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_8180P72_tags_145[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P72_specs_145 = { + sizeof(struct ProtocolIE_Container_8180P72), + offsetof(struct ProtocolIE_Container_8180P72, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P72 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P72_tags_145, + sizeof(asn_DEF_ProtocolIE_Container_8180P72_tags_145) + /sizeof(asn_DEF_ProtocolIE_Container_8180P72_tags_145[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P72_tags_145, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P72_tags_145) + /sizeof(asn_DEF_ProtocolIE_Container_8180P72_tags_145[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P72_constr_145, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P72_145, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P72_specs_145 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P73_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_8180P73_tags_147[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P73_specs_147 = { + sizeof(struct ProtocolIE_Container_8180P73), + offsetof(struct ProtocolIE_Container_8180P73, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P73 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P73_tags_147, + sizeof(asn_DEF_ProtocolIE_Container_8180P73_tags_147) + /sizeof(asn_DEF_ProtocolIE_Container_8180P73_tags_147[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P73_tags_147, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P73_tags_147) + /sizeof(asn_DEF_ProtocolIE_Container_8180P73_tags_147[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P73_constr_147, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P73_147, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P73_specs_147 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P74_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_8180P74_tags_149[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P74_specs_149 = { + sizeof(struct ProtocolIE_Container_8180P74), + offsetof(struct ProtocolIE_Container_8180P74, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P74 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P74_tags_149, + sizeof(asn_DEF_ProtocolIE_Container_8180P74_tags_149) + /sizeof(asn_DEF_ProtocolIE_Container_8180P74_tags_149[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P74_tags_149, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P74_tags_149) + /sizeof(asn_DEF_ProtocolIE_Container_8180P74_tags_149[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P74_constr_149, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P74_149, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P74_specs_149 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P75_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_8180P75_tags_151[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P75_specs_151 = { + sizeof(struct ProtocolIE_Container_8180P75), + offsetof(struct ProtocolIE_Container_8180P75, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P75 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P75_tags_151, + sizeof(asn_DEF_ProtocolIE_Container_8180P75_tags_151) + /sizeof(asn_DEF_ProtocolIE_Container_8180P75_tags_151[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P75_tags_151, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P75_tags_151) + /sizeof(asn_DEF_ProtocolIE_Container_8180P75_tags_151[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P75_constr_151, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P75_151, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P75_specs_151 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P76_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_8180P76_tags_153[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P76_specs_153 = { + sizeof(struct ProtocolIE_Container_8180P76), + offsetof(struct ProtocolIE_Container_8180P76, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P76 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P76_tags_153, + sizeof(asn_DEF_ProtocolIE_Container_8180P76_tags_153) + /sizeof(asn_DEF_ProtocolIE_Container_8180P76_tags_153[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P76_tags_153, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P76_tags_153) + /sizeof(asn_DEF_ProtocolIE_Container_8180P76_tags_153[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P76_constr_153, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P76_153, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P76_specs_153 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P77_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_8180P77_tags_155[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P77_specs_155 = { + sizeof(struct ProtocolIE_Container_8180P77), + offsetof(struct ProtocolIE_Container_8180P77, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P77 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P77_tags_155, + sizeof(asn_DEF_ProtocolIE_Container_8180P77_tags_155) + /sizeof(asn_DEF_ProtocolIE_Container_8180P77_tags_155[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P77_tags_155, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P77_tags_155) + /sizeof(asn_DEF_ProtocolIE_Container_8180P77_tags_155[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P77_constr_155, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P77_155, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P77_specs_155 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P78_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_8180P78_tags_157[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P78_specs_157 = { + sizeof(struct ProtocolIE_Container_8180P78), + offsetof(struct ProtocolIE_Container_8180P78, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P78 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P78_tags_157, + sizeof(asn_DEF_ProtocolIE_Container_8180P78_tags_157) + /sizeof(asn_DEF_ProtocolIE_Container_8180P78_tags_157[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P78_tags_157, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P78_tags_157) + /sizeof(asn_DEF_ProtocolIE_Container_8180P78_tags_157[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P78_constr_157, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P78_157, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P78_specs_157 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P79_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_8180P79_tags_159[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P79_specs_159 = { + sizeof(struct ProtocolIE_Container_8180P79), + offsetof(struct ProtocolIE_Container_8180P79, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P79 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P79_tags_159, + sizeof(asn_DEF_ProtocolIE_Container_8180P79_tags_159) + /sizeof(asn_DEF_ProtocolIE_Container_8180P79_tags_159[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P79_tags_159, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P79_tags_159) + /sizeof(asn_DEF_ProtocolIE_Container_8180P79_tags_159[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P79_constr_159, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P79_159, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P79_specs_159 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P80_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_8180P80_tags_161[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P80_specs_161 = { + sizeof(struct ProtocolIE_Container_8180P80), + offsetof(struct ProtocolIE_Container_8180P80, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P80 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P80_tags_161, + sizeof(asn_DEF_ProtocolIE_Container_8180P80_tags_161) + /sizeof(asn_DEF_ProtocolIE_Container_8180P80_tags_161[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P80_tags_161, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P80_tags_161) + /sizeof(asn_DEF_ProtocolIE_Container_8180P80_tags_161[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P80_constr_161, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P80_161, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P80_specs_161 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P81_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_8180P81_tags_163[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P81_specs_163 = { + sizeof(struct ProtocolIE_Container_8180P81), + offsetof(struct ProtocolIE_Container_8180P81, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P81 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P81_tags_163, + sizeof(asn_DEF_ProtocolIE_Container_8180P81_tags_163) + /sizeof(asn_DEF_ProtocolIE_Container_8180P81_tags_163[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P81_tags_163, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P81_tags_163) + /sizeof(asn_DEF_ProtocolIE_Container_8180P81_tags_163[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P81_constr_163, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P81_163, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P81_specs_163 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P82_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_8180P82_tags_165[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P82_specs_165 = { + sizeof(struct ProtocolIE_Container_8180P82), + offsetof(struct ProtocolIE_Container_8180P82, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P82 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P82_tags_165, + sizeof(asn_DEF_ProtocolIE_Container_8180P82_tags_165) + /sizeof(asn_DEF_ProtocolIE_Container_8180P82_tags_165[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P82_tags_165, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P82_tags_165) + /sizeof(asn_DEF_ProtocolIE_Container_8180P82_tags_165[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P82_constr_165, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P82_165, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P82_specs_165 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P83_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_8180P83_tags_167[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P83_specs_167 = { + sizeof(struct ProtocolIE_Container_8180P83), + offsetof(struct ProtocolIE_Container_8180P83, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P83 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P83_tags_167, + sizeof(asn_DEF_ProtocolIE_Container_8180P83_tags_167) + /sizeof(asn_DEF_ProtocolIE_Container_8180P83_tags_167[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P83_tags_167, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P83_tags_167) + /sizeof(asn_DEF_ProtocolIE_Container_8180P83_tags_167[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P83_constr_167, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P83_167, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P83_specs_167 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P84_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_8180P84_tags_169[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P84_specs_169 = { + sizeof(struct ProtocolIE_Container_8180P84), + offsetof(struct ProtocolIE_Container_8180P84, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P84 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P84_tags_169, + sizeof(asn_DEF_ProtocolIE_Container_8180P84_tags_169) + /sizeof(asn_DEF_ProtocolIE_Container_8180P84_tags_169[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P84_tags_169, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P84_tags_169) + /sizeof(asn_DEF_ProtocolIE_Container_8180P84_tags_169[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P84_constr_169, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P84_169, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P84_specs_169 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P85_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_8180P85_tags_171[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P85_specs_171 = { + sizeof(struct ProtocolIE_Container_8180P85), + offsetof(struct ProtocolIE_Container_8180P85, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P85 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P85_tags_171, + sizeof(asn_DEF_ProtocolIE_Container_8180P85_tags_171) + /sizeof(asn_DEF_ProtocolIE_Container_8180P85_tags_171[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P85_tags_171, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P85_tags_171) + /sizeof(asn_DEF_ProtocolIE_Container_8180P85_tags_171[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P85_constr_171, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P85_171, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P85_specs_171 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P86_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_8180P86_tags_173[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P86_specs_173 = { + sizeof(struct ProtocolIE_Container_8180P86), + offsetof(struct ProtocolIE_Container_8180P86, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P86 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P86_tags_173, + sizeof(asn_DEF_ProtocolIE_Container_8180P86_tags_173) + /sizeof(asn_DEF_ProtocolIE_Container_8180P86_tags_173[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P86_tags_173, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P86_tags_173) + /sizeof(asn_DEF_ProtocolIE_Container_8180P86_tags_173[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P86_constr_173, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P86_173, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P86_specs_173 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P87_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_8180P87_tags_175[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P87_specs_175 = { + sizeof(struct ProtocolIE_Container_8180P87), + offsetof(struct ProtocolIE_Container_8180P87, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P87 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P87_tags_175, + sizeof(asn_DEF_ProtocolIE_Container_8180P87_tags_175) + /sizeof(asn_DEF_ProtocolIE_Container_8180P87_tags_175[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P87_tags_175, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P87_tags_175) + /sizeof(asn_DEF_ProtocolIE_Container_8180P87_tags_175[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P87_constr_175, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P87_175, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P87_specs_175 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P88_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_8180P88_tags_177[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P88_specs_177 = { + sizeof(struct ProtocolIE_Container_8180P88), + offsetof(struct ProtocolIE_Container_8180P88, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P88 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P88_tags_177, + sizeof(asn_DEF_ProtocolIE_Container_8180P88_tags_177) + /sizeof(asn_DEF_ProtocolIE_Container_8180P88_tags_177[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P88_tags_177, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P88_tags_177) + /sizeof(asn_DEF_ProtocolIE_Container_8180P88_tags_177[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P88_constr_177, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P88_177, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P88_specs_177 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P89_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_8180P89_tags_179[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P89_specs_179 = { + sizeof(struct ProtocolIE_Container_8180P89), + offsetof(struct ProtocolIE_Container_8180P89, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P89 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P89_tags_179, + sizeof(asn_DEF_ProtocolIE_Container_8180P89_tags_179) + /sizeof(asn_DEF_ProtocolIE_Container_8180P89_tags_179[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P89_tags_179, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P89_tags_179) + /sizeof(asn_DEF_ProtocolIE_Container_8180P89_tags_179[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P89_constr_179, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P89_179, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P89_specs_179 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P90_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_8180P90_tags_181[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P90_specs_181 = { + sizeof(struct ProtocolIE_Container_8180P90), + offsetof(struct ProtocolIE_Container_8180P90, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P90 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P90_tags_181, + sizeof(asn_DEF_ProtocolIE_Container_8180P90_tags_181) + /sizeof(asn_DEF_ProtocolIE_Container_8180P90_tags_181[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P90_tags_181, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P90_tags_181) + /sizeof(asn_DEF_ProtocolIE_Container_8180P90_tags_181[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P90_constr_181, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P90_181, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P90_specs_181 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P91_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_8180P91_tags_183[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P91_specs_183 = { + sizeof(struct ProtocolIE_Container_8180P91), + offsetof(struct ProtocolIE_Container_8180P91, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P91 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P91_tags_183, + sizeof(asn_DEF_ProtocolIE_Container_8180P91_tags_183) + /sizeof(asn_DEF_ProtocolIE_Container_8180P91_tags_183[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P91_tags_183, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P91_tags_183) + /sizeof(asn_DEF_ProtocolIE_Container_8180P91_tags_183[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P91_constr_183, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P91_183, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P91_specs_183 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P92_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_8180P92_tags_185[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P92_specs_185 = { + sizeof(struct ProtocolIE_Container_8180P92), + offsetof(struct ProtocolIE_Container_8180P92, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P92 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P92_tags_185, + sizeof(asn_DEF_ProtocolIE_Container_8180P92_tags_185) + /sizeof(asn_DEF_ProtocolIE_Container_8180P92_tags_185[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P92_tags_185, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P92_tags_185) + /sizeof(asn_DEF_ProtocolIE_Container_8180P92_tags_185[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P92_constr_185, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P92_185, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P92_specs_185 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P93_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_8180P93_tags_187[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P93_specs_187 = { + sizeof(struct ProtocolIE_Container_8180P93), + offsetof(struct ProtocolIE_Container_8180P93, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P93 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P93_tags_187, + sizeof(asn_DEF_ProtocolIE_Container_8180P93_tags_187) + /sizeof(asn_DEF_ProtocolIE_Container_8180P93_tags_187[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P93_tags_187, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P93_tags_187) + /sizeof(asn_DEF_ProtocolIE_Container_8180P93_tags_187[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P93_constr_187, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P93_187, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P93_specs_187 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P94_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_8180P94_tags_189[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P94_specs_189 = { + sizeof(struct ProtocolIE_Container_8180P94), + offsetof(struct ProtocolIE_Container_8180P94, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P94 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P94_tags_189, + sizeof(asn_DEF_ProtocolIE_Container_8180P94_tags_189) + /sizeof(asn_DEF_ProtocolIE_Container_8180P94_tags_189[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P94_tags_189, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P94_tags_189) + /sizeof(asn_DEF_ProtocolIE_Container_8180P94_tags_189[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P94_constr_189, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P94_189, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P94_specs_189 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P95_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_8180P95_tags_191[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P95_specs_191 = { + sizeof(struct ProtocolIE_Container_8180P95), + offsetof(struct ProtocolIE_Container_8180P95, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P95 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P95_tags_191, + sizeof(asn_DEF_ProtocolIE_Container_8180P95_tags_191) + /sizeof(asn_DEF_ProtocolIE_Container_8180P95_tags_191[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P95_tags_191, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P95_tags_191) + /sizeof(asn_DEF_ProtocolIE_Container_8180P95_tags_191[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P95_constr_191, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P95_191, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P95_specs_191 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P96_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_8180P96_tags_193[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P96_specs_193 = { + sizeof(struct ProtocolIE_Container_8180P96), + offsetof(struct ProtocolIE_Container_8180P96, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P96 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P96_tags_193, + sizeof(asn_DEF_ProtocolIE_Container_8180P96_tags_193) + /sizeof(asn_DEF_ProtocolIE_Container_8180P96_tags_193[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P96_tags_193, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P96_tags_193) + /sizeof(asn_DEF_ProtocolIE_Container_8180P96_tags_193[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P96_constr_193, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P96_193, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P96_specs_193 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P97_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_8180P97_tags_195[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P97_specs_195 = { + sizeof(struct ProtocolIE_Container_8180P97), + offsetof(struct ProtocolIE_Container_8180P97, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P97 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P97_tags_195, + sizeof(asn_DEF_ProtocolIE_Container_8180P97_tags_195) + /sizeof(asn_DEF_ProtocolIE_Container_8180P97_tags_195[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P97_tags_195, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P97_tags_195) + /sizeof(asn_DEF_ProtocolIE_Container_8180P97_tags_195[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P97_constr_195, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P97_195, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P97_specs_195 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P98_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_8180P98_tags_197[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P98_specs_197 = { + sizeof(struct ProtocolIE_Container_8180P98), + offsetof(struct ProtocolIE_Container_8180P98, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P98 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P98_tags_197, + sizeof(asn_DEF_ProtocolIE_Container_8180P98_tags_197) + /sizeof(asn_DEF_ProtocolIE_Container_8180P98_tags_197[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P98_tags_197, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P98_tags_197) + /sizeof(asn_DEF_ProtocolIE_Container_8180P98_tags_197[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P98_constr_197, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P98_197, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P98_specs_197 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P99_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_8180P99_tags_199[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P99_specs_199 = { + sizeof(struct ProtocolIE_Container_8180P99), + offsetof(struct ProtocolIE_Container_8180P99, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P99 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P99_tags_199, + sizeof(asn_DEF_ProtocolIE_Container_8180P99_tags_199) + /sizeof(asn_DEF_ProtocolIE_Container_8180P99_tags_199[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P99_tags_199, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P99_tags_199) + /sizeof(asn_DEF_ProtocolIE_Container_8180P99_tags_199[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P99_constr_199, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P99_199, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P99_specs_199 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P100_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_8180P100_tags_201[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P100_specs_201 = { + sizeof(struct ProtocolIE_Container_8180P100), + offsetof(struct ProtocolIE_Container_8180P100, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P100 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P100_tags_201, + sizeof(asn_DEF_ProtocolIE_Container_8180P100_tags_201) + /sizeof(asn_DEF_ProtocolIE_Container_8180P100_tags_201[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P100_tags_201, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P100_tags_201) + /sizeof(asn_DEF_ProtocolIE_Container_8180P100_tags_201[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P100_constr_201, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P100_201, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P100_specs_201 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P101_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_8180P101_tags_203[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P101_specs_203 = { + sizeof(struct ProtocolIE_Container_8180P101), + offsetof(struct ProtocolIE_Container_8180P101, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P101 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P101_tags_203, + sizeof(asn_DEF_ProtocolIE_Container_8180P101_tags_203) + /sizeof(asn_DEF_ProtocolIE_Container_8180P101_tags_203[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P101_tags_203, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P101_tags_203) + /sizeof(asn_DEF_ProtocolIE_Container_8180P101_tags_203[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P101_constr_203, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P101_203, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P101_specs_203 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P102_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_8180P102_tags_205[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P102_specs_205 = { + sizeof(struct ProtocolIE_Container_8180P102), + offsetof(struct ProtocolIE_Container_8180P102, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P102 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P102_tags_205, + sizeof(asn_DEF_ProtocolIE_Container_8180P102_tags_205) + /sizeof(asn_DEF_ProtocolIE_Container_8180P102_tags_205[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P102_tags_205, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P102_tags_205) + /sizeof(asn_DEF_ProtocolIE_Container_8180P102_tags_205[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P102_constr_205, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P102_205, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P102_specs_205 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P103_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_8180P103_tags_207[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P103_specs_207 = { + sizeof(struct ProtocolIE_Container_8180P103), + offsetof(struct ProtocolIE_Container_8180P103, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P103 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P103_tags_207, + sizeof(asn_DEF_ProtocolIE_Container_8180P103_tags_207) + /sizeof(asn_DEF_ProtocolIE_Container_8180P103_tags_207[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P103_tags_207, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P103_tags_207) + /sizeof(asn_DEF_ProtocolIE_Container_8180P103_tags_207[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P103_constr_207, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P103_207, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P103_specs_207 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P104_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_8180P104_tags_209[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P104_specs_209 = { + sizeof(struct ProtocolIE_Container_8180P104), + offsetof(struct ProtocolIE_Container_8180P104, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P104 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P104_tags_209, + sizeof(asn_DEF_ProtocolIE_Container_8180P104_tags_209) + /sizeof(asn_DEF_ProtocolIE_Container_8180P104_tags_209[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P104_tags_209, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P104_tags_209) + /sizeof(asn_DEF_ProtocolIE_Container_8180P104_tags_209[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P104_constr_209, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P104_209, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P104_specs_209 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P105_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_8180P105_tags_211[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P105_specs_211 = { + sizeof(struct ProtocolIE_Container_8180P105), + offsetof(struct ProtocolIE_Container_8180P105, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P105 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P105_tags_211, + sizeof(asn_DEF_ProtocolIE_Container_8180P105_tags_211) + /sizeof(asn_DEF_ProtocolIE_Container_8180P105_tags_211[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P105_tags_211, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P105_tags_211) + /sizeof(asn_DEF_ProtocolIE_Container_8180P105_tags_211[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P105_constr_211, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P105_211, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P105_specs_211 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P106_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_8180P106_tags_213[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P106_specs_213 = { + sizeof(struct ProtocolIE_Container_8180P106), + offsetof(struct ProtocolIE_Container_8180P106, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P106 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P106_tags_213, + sizeof(asn_DEF_ProtocolIE_Container_8180P106_tags_213) + /sizeof(asn_DEF_ProtocolIE_Container_8180P106_tags_213[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P106_tags_213, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P106_tags_213) + /sizeof(asn_DEF_ProtocolIE_Container_8180P106_tags_213[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P106_constr_213, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P106_213, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P106_specs_213 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P107_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_8180P107_tags_215[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P107_specs_215 = { + sizeof(struct ProtocolIE_Container_8180P107), + offsetof(struct ProtocolIE_Container_8180P107, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P107 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P107_tags_215, + sizeof(asn_DEF_ProtocolIE_Container_8180P107_tags_215) + /sizeof(asn_DEF_ProtocolIE_Container_8180P107_tags_215[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P107_tags_215, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P107_tags_215) + /sizeof(asn_DEF_ProtocolIE_Container_8180P107_tags_215[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P107_constr_215, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P107_215, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P107_specs_215 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P108_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_8180P108_tags_217[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P108_specs_217 = { + sizeof(struct ProtocolIE_Container_8180P108), + offsetof(struct ProtocolIE_Container_8180P108, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P108 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P108_tags_217, + sizeof(asn_DEF_ProtocolIE_Container_8180P108_tags_217) + /sizeof(asn_DEF_ProtocolIE_Container_8180P108_tags_217[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P108_tags_217, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P108_tags_217) + /sizeof(asn_DEF_ProtocolIE_Container_8180P108_tags_217[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P108_constr_217, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P108_217, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P108_specs_217 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P109_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_8180P109_tags_219[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P109_specs_219 = { + sizeof(struct ProtocolIE_Container_8180P109), + offsetof(struct ProtocolIE_Container_8180P109, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P109 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P109_tags_219, + sizeof(asn_DEF_ProtocolIE_Container_8180P109_tags_219) + /sizeof(asn_DEF_ProtocolIE_Container_8180P109_tags_219[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P109_tags_219, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P109_tags_219) + /sizeof(asn_DEF_ProtocolIE_Container_8180P109_tags_219[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P109_constr_219, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P109_219, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P109_specs_219 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P110_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_8180P110_tags_221[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P110_specs_221 = { + sizeof(struct ProtocolIE_Container_8180P110), + offsetof(struct ProtocolIE_Container_8180P110, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P110 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P110_tags_221, + sizeof(asn_DEF_ProtocolIE_Container_8180P110_tags_221) + /sizeof(asn_DEF_ProtocolIE_Container_8180P110_tags_221[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P110_tags_221, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P110_tags_221) + /sizeof(asn_DEF_ProtocolIE_Container_8180P110_tags_221[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P110_constr_221, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P110_221, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P110_specs_221 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P111_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_8180P111_tags_223[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P111_specs_223 = { + sizeof(struct ProtocolIE_Container_8180P111), + offsetof(struct ProtocolIE_Container_8180P111, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P111 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P111_tags_223, + sizeof(asn_DEF_ProtocolIE_Container_8180P111_tags_223) + /sizeof(asn_DEF_ProtocolIE_Container_8180P111_tags_223[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P111_tags_223, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P111_tags_223) + /sizeof(asn_DEF_ProtocolIE_Container_8180P111_tags_223[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P111_constr_223, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P111_223, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P111_specs_223 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P112_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_8180P112_tags_225[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P112_specs_225 = { + sizeof(struct ProtocolIE_Container_8180P112), + offsetof(struct ProtocolIE_Container_8180P112, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P112 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P112_tags_225, + sizeof(asn_DEF_ProtocolIE_Container_8180P112_tags_225) + /sizeof(asn_DEF_ProtocolIE_Container_8180P112_tags_225[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P112_tags_225, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P112_tags_225) + /sizeof(asn_DEF_ProtocolIE_Container_8180P112_tags_225[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P112_constr_225, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P112_225, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P112_specs_225 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P113_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_8180P113_tags_227[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P113_specs_227 = { + sizeof(struct ProtocolIE_Container_8180P113), + offsetof(struct ProtocolIE_Container_8180P113, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P113 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P113_tags_227, + sizeof(asn_DEF_ProtocolIE_Container_8180P113_tags_227) + /sizeof(asn_DEF_ProtocolIE_Container_8180P113_tags_227[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P113_tags_227, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P113_tags_227) + /sizeof(asn_DEF_ProtocolIE_Container_8180P113_tags_227[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P113_constr_227, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P113_227, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P113_specs_227 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P114_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_8180P114_tags_229[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P114_specs_229 = { + sizeof(struct ProtocolIE_Container_8180P114), + offsetof(struct ProtocolIE_Container_8180P114, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P114 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P114_tags_229, + sizeof(asn_DEF_ProtocolIE_Container_8180P114_tags_229) + /sizeof(asn_DEF_ProtocolIE_Container_8180P114_tags_229[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P114_tags_229, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P114_tags_229) + /sizeof(asn_DEF_ProtocolIE_Container_8180P114_tags_229[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P114_constr_229, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P114_229, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P114_specs_229 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P115_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_8180P115_tags_231[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P115_specs_231 = { + sizeof(struct ProtocolIE_Container_8180P115), + offsetof(struct ProtocolIE_Container_8180P115, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P115 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P115_tags_231, + sizeof(asn_DEF_ProtocolIE_Container_8180P115_tags_231) + /sizeof(asn_DEF_ProtocolIE_Container_8180P115_tags_231[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P115_tags_231, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P115_tags_231) + /sizeof(asn_DEF_ProtocolIE_Container_8180P115_tags_231[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P115_constr_231, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P115_231, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P115_specs_231 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P116_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_8180P116_tags_233[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P116_specs_233 = { + sizeof(struct ProtocolIE_Container_8180P116), + offsetof(struct ProtocolIE_Container_8180P116, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P116 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P116_tags_233, + sizeof(asn_DEF_ProtocolIE_Container_8180P116_tags_233) + /sizeof(asn_DEF_ProtocolIE_Container_8180P116_tags_233[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P116_tags_233, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P116_tags_233) + /sizeof(asn_DEF_ProtocolIE_Container_8180P116_tags_233[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P116_constr_233, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P116_233, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P116_specs_233 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P117_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_8180P117_tags_235[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P117_specs_235 = { + sizeof(struct ProtocolIE_Container_8180P117), + offsetof(struct ProtocolIE_Container_8180P117, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P117 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P117_tags_235, + sizeof(asn_DEF_ProtocolIE_Container_8180P117_tags_235) + /sizeof(asn_DEF_ProtocolIE_Container_8180P117_tags_235[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P117_tags_235, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P117_tags_235) + /sizeof(asn_DEF_ProtocolIE_Container_8180P117_tags_235[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P117_constr_235, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P117_235, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P117_specs_235 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P118_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_8180P118_tags_237[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P118_specs_237 = { + sizeof(struct ProtocolIE_Container_8180P118), + offsetof(struct ProtocolIE_Container_8180P118, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P118 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P118_tags_237, + sizeof(asn_DEF_ProtocolIE_Container_8180P118_tags_237) + /sizeof(asn_DEF_ProtocolIE_Container_8180P118_tags_237[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P118_tags_237, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P118_tags_237) + /sizeof(asn_DEF_ProtocolIE_Container_8180P118_tags_237[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P118_constr_237, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P118_237, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P118_specs_237 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P119_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_8180P119_tags_239[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P119_specs_239 = { + sizeof(struct ProtocolIE_Container_8180P119), + offsetof(struct ProtocolIE_Container_8180P119, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P119 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_Container_8180P119_tags_239, + sizeof(asn_DEF_ProtocolIE_Container_8180P119_tags_239) + /sizeof(asn_DEF_ProtocolIE_Container_8180P119_tags_239[0]), /* 1 */ + asn_DEF_ProtocolIE_Container_8180P119_tags_239, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Container_8180P119_tags_239) + /sizeof(asn_DEF_ProtocolIE_Container_8180P119_tags_239[0]), /* 1 */ + { 0, &asn_PER_type_ProtocolIE_Container_8180P119_constr_239, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_Container_8180P119_239, + 1, /* Single element */ + &asn_SPC_ProtocolIE_Container_8180P119_specs_239 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/ProtocolIE-Container.h b/asn1c_defs/all-defs/ProtocolIE-Container.h new file mode 100644 index 0000000..d8fd31d --- /dev/null +++ b/asn1c_defs/all-defs/ProtocolIE-Container.h @@ -0,0 +1,1353 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-Containers" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ProtocolIE_Container_H_ +#define _ProtocolIE_Container_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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_8180P0 { + A_SEQUENCE_OF(struct RICsubscriptionRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P0_t; +typedef struct ProtocolIE_Container_8180P1 { + A_SEQUENCE_OF(struct RICsubscriptionResponse_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P1_t; +typedef struct ProtocolIE_Container_8180P2 { + A_SEQUENCE_OF(struct RICsubscriptionFailure_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P2_t; +typedef struct ProtocolIE_Container_8180P3 { + A_SEQUENCE_OF(struct RICsubscriptionDeleteRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P3_t; +typedef struct ProtocolIE_Container_8180P4 { + A_SEQUENCE_OF(struct RICsubscriptionDeleteResponse_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P4_t; +typedef struct ProtocolIE_Container_8180P5 { + A_SEQUENCE_OF(struct RICsubscriptionDeleteFailure_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P5_t; +typedef struct ProtocolIE_Container_8180P6 { + A_SEQUENCE_OF(struct RICindication_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P6_t; +typedef struct ProtocolIE_Container_8180P7 { + A_SEQUENCE_OF(struct RICcontrolRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P7_t; +typedef struct ProtocolIE_Container_8180P8 { + A_SEQUENCE_OF(struct RICcontrolAcknowledge_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P8_t; +typedef struct ProtocolIE_Container_8180P9 { + A_SEQUENCE_OF(struct RICcontrolFailure_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P9_t; +typedef struct ProtocolIE_Container_8180P10 { + A_SEQUENCE_OF(struct RICserviceUpdate_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P10_t; +typedef struct ProtocolIE_Container_8180P11 { + A_SEQUENCE_OF(struct RICserviceUpdateAcknowledge_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P11_t; +typedef struct ProtocolIE_Container_8180P12 { + A_SEQUENCE_OF(struct RICserviceUpdateFailure_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P12_t; +typedef struct ProtocolIE_Container_8180P13 { + A_SEQUENCE_OF(struct RICserviceQuery_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P13_t; +typedef struct ProtocolIE_Container_8180P14 { + A_SEQUENCE_OF(struct HandoverRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P14_t; +typedef struct ProtocolIE_Container_8180P15 { + A_SEQUENCE_OF(struct HandoverRequestAcknowledge_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P15_t; +typedef struct ProtocolIE_Container_8180P16 { + A_SEQUENCE_OF(struct HandoverPreparationFailure_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P16_t; +typedef struct ProtocolIE_Container_8180P17 { + A_SEQUENCE_OF(struct HandoverReport_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P17_t; +typedef struct ProtocolIE_Container_8180P18 { + A_SEQUENCE_OF(struct SNStatusTransfer_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P18_t; +typedef struct ProtocolIE_Container_8180P19 { + A_SEQUENCE_OF(struct UEContextRelease_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P19_t; +typedef struct ProtocolIE_Container_8180P20 { + A_SEQUENCE_OF(struct HandoverCancel_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P20_t; +typedef struct ProtocolIE_Container_8180P21 { + A_SEQUENCE_OF(struct ErrorIndication_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P21_t; +typedef struct ProtocolIE_Container_8180P22 { + A_SEQUENCE_OF(struct ResetRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P22_t; +typedef struct ProtocolIE_Container_8180P23 { + A_SEQUENCE_OF(struct ResetResponse_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P23_t; +typedef struct ProtocolIE_Container_8180P24 { + A_SEQUENCE_OF(struct X2SetupRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P24_t; +typedef struct ProtocolIE_Container_8180P25 { + A_SEQUENCE_OF(struct X2SetupResponse_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P25_t; +typedef struct ProtocolIE_Container_8180P26 { + A_SEQUENCE_OF(struct X2SetupFailure_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P26_t; +typedef struct ProtocolIE_Container_8180P27 { + A_SEQUENCE_OF(struct LoadInformation_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P27_t; +typedef struct ProtocolIE_Container_8180P28 { + A_SEQUENCE_OF(struct ENBConfigurationUpdate_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P28_t; +typedef struct ProtocolIE_Container_8180P29 { + A_SEQUENCE_OF(struct ENBConfigurationUpdateAcknowledge_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P29_t; +typedef struct ProtocolIE_Container_8180P30 { + A_SEQUENCE_OF(struct ENBConfigurationUpdateFailure_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P30_t; +typedef struct ProtocolIE_Container_8180P31 { + A_SEQUENCE_OF(struct ResourceStatusRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P31_t; +typedef struct ProtocolIE_Container_8180P32 { + A_SEQUENCE_OF(struct ResourceStatusResponse_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P32_t; +typedef struct ProtocolIE_Container_8180P33 { + A_SEQUENCE_OF(struct ResourceStatusFailure_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P33_t; +typedef struct ProtocolIE_Container_8180P34 { + A_SEQUENCE_OF(struct ResourceStatusUpdate_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P34_t; +typedef struct ProtocolIE_Container_8180P35 { + A_SEQUENCE_OF(struct MobilityChangeRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P35_t; +typedef struct ProtocolIE_Container_8180P36 { + A_SEQUENCE_OF(struct MobilityChangeAcknowledge_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P36_t; +typedef struct ProtocolIE_Container_8180P37 { + A_SEQUENCE_OF(struct MobilityChangeFailure_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P37_t; +typedef struct ProtocolIE_Container_8180P38 { + A_SEQUENCE_OF(struct RLFIndication_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P38_t; +typedef struct ProtocolIE_Container_8180P39 { + A_SEQUENCE_OF(struct CellActivationRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P39_t; +typedef struct ProtocolIE_Container_8180P40 { + A_SEQUENCE_OF(struct CellActivationResponse_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P40_t; +typedef struct ProtocolIE_Container_8180P41 { + A_SEQUENCE_OF(struct CellActivationFailure_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P41_t; +typedef struct ProtocolIE_Container_8180P42 { + A_SEQUENCE_OF(struct X2Release_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P42_t; +typedef struct ProtocolIE_Container_8180P43 { + A_SEQUENCE_OF(struct X2APMessageTransfer_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P43_t; +typedef struct ProtocolIE_Container_8180P44 { + A_SEQUENCE_OF(struct SeNBAdditionRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P44_t; +typedef struct ProtocolIE_Container_8180P45 { + A_SEQUENCE_OF(struct SeNBAdditionRequestAcknowledge_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P45_t; +typedef struct ProtocolIE_Container_8180P46 { + A_SEQUENCE_OF(struct SeNBAdditionRequestReject_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P46_t; +typedef struct ProtocolIE_Container_8180P47 { + A_SEQUENCE_OF(struct SeNBReconfigurationComplete_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P47_t; +typedef struct ProtocolIE_Container_8180P48 { + A_SEQUENCE_OF(struct SeNBModificationRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P48_t; +typedef struct ProtocolIE_Container_8180P49 { + A_SEQUENCE_OF(struct SeNBModificationRequestAcknowledge_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P49_t; +typedef struct ProtocolIE_Container_8180P50 { + A_SEQUENCE_OF(struct SeNBModificationRequestReject_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P50_t; +typedef struct ProtocolIE_Container_8180P51 { + A_SEQUENCE_OF(struct SeNBModificationRequired_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P51_t; +typedef struct ProtocolIE_Container_8180P52 { + A_SEQUENCE_OF(struct SeNBModificationConfirm_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P52_t; +typedef struct ProtocolIE_Container_8180P53 { + A_SEQUENCE_OF(struct SeNBModificationRefuse_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P53_t; +typedef struct ProtocolIE_Container_8180P54 { + A_SEQUENCE_OF(struct SeNBReleaseRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P54_t; +typedef struct ProtocolIE_Container_8180P55 { + A_SEQUENCE_OF(struct SeNBReleaseRequired_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P55_t; +typedef struct ProtocolIE_Container_8180P56 { + A_SEQUENCE_OF(struct SeNBReleaseConfirm_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P56_t; +typedef struct ProtocolIE_Container_8180P57 { + A_SEQUENCE_OF(struct SeNBCounterCheckRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P57_t; +typedef struct ProtocolIE_Container_8180P58 { + A_SEQUENCE_OF(struct X2RemovalRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P58_t; +typedef struct ProtocolIE_Container_8180P59 { + A_SEQUENCE_OF(struct X2RemovalResponse_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P59_t; +typedef struct ProtocolIE_Container_8180P60 { + A_SEQUENCE_OF(struct X2RemovalFailure_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P60_t; +typedef struct ProtocolIE_Container_8180P61 { + A_SEQUENCE_OF(struct RetrieveUEContextRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P61_t; +typedef struct ProtocolIE_Container_8180P62 { + A_SEQUENCE_OF(struct RetrieveUEContextResponse_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P62_t; +typedef struct ProtocolIE_Container_8180P63 { + A_SEQUENCE_OF(struct RetrieveUEContextFailure_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P63_t; +typedef struct ProtocolIE_Container_8180P64 { + A_SEQUENCE_OF(struct SgNBAdditionRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P64_t; +typedef struct ProtocolIE_Container_8180P65 { + A_SEQUENCE_OF(struct SgNBAdditionRequestAcknowledge_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P65_t; +typedef struct ProtocolIE_Container_8180P66 { + A_SEQUENCE_OF(struct SgNBAdditionRequestReject_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P66_t; +typedef struct ProtocolIE_Container_8180P67 { + A_SEQUENCE_OF(struct SgNBReconfigurationComplete_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P67_t; +typedef struct ProtocolIE_Container_8180P68 { + A_SEQUENCE_OF(struct SgNBModificationRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P68_t; +typedef struct ProtocolIE_Container_8180P69 { + A_SEQUENCE_OF(struct SgNBModificationRequestAcknowledge_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P69_t; +typedef struct ProtocolIE_Container_8180P70 { + A_SEQUENCE_OF(struct SgNBModificationRequestReject_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P70_t; +typedef struct ProtocolIE_Container_8180P71 { + A_SEQUENCE_OF(struct SgNBModificationRequired_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P71_t; +typedef struct ProtocolIE_Container_8180P72 { + A_SEQUENCE_OF(struct SgNBModificationConfirm_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P72_t; +typedef struct ProtocolIE_Container_8180P73 { + A_SEQUENCE_OF(struct SgNBModificationRefuse_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P73_t; +typedef struct ProtocolIE_Container_8180P74 { + A_SEQUENCE_OF(struct SgNBReleaseRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P74_t; +typedef struct ProtocolIE_Container_8180P75 { + A_SEQUENCE_OF(struct SgNBReleaseRequestAcknowledge_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P75_t; +typedef struct ProtocolIE_Container_8180P76 { + A_SEQUENCE_OF(struct SgNBReleaseRequestReject_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P76_t; +typedef struct ProtocolIE_Container_8180P77 { + A_SEQUENCE_OF(struct SgNBReleaseRequired_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P77_t; +typedef struct ProtocolIE_Container_8180P78 { + A_SEQUENCE_OF(struct SgNBReleaseConfirm_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P78_t; +typedef struct ProtocolIE_Container_8180P79 { + A_SEQUENCE_OF(struct SgNBCounterCheckRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P79_t; +typedef struct ProtocolIE_Container_8180P80 { + A_SEQUENCE_OF(struct SgNBChangeRequired_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P80_t; +typedef struct ProtocolIE_Container_8180P81 { + A_SEQUENCE_OF(struct SgNBChangeConfirm_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P81_t; +typedef struct ProtocolIE_Container_8180P82 { + A_SEQUENCE_OF(struct RRCTransfer_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P82_t; +typedef struct ProtocolIE_Container_8180P83 { + A_SEQUENCE_OF(struct SgNBChangeRefuse_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P83_t; +typedef struct ProtocolIE_Container_8180P84 { + A_SEQUENCE_OF(struct ENDCX2SetupRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P84_t; +typedef struct ProtocolIE_Container_8180P85 { + A_SEQUENCE_OF(struct ENB_ENDCX2SetupReqIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P85_t; +typedef struct ProtocolIE_Container_8180P86 { + A_SEQUENCE_OF(struct En_gNB_ENDCX2SetupReqIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P86_t; +typedef struct ProtocolIE_Container_8180P87 { + A_SEQUENCE_OF(struct ENDCX2SetupResponse_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P87_t; +typedef struct ProtocolIE_Container_8180P88 { + A_SEQUENCE_OF(struct ENB_ENDCX2SetupReqAckIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P88_t; +typedef struct ProtocolIE_Container_8180P89 { + A_SEQUENCE_OF(struct En_gNB_ENDCX2SetupReqAckIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P89_t; +typedef struct ProtocolIE_Container_8180P90 { + A_SEQUENCE_OF(struct ENDCX2SetupFailure_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P90_t; +typedef struct ProtocolIE_Container_8180P91 { + A_SEQUENCE_OF(struct ENDCConfigurationUpdate_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P91_t; +typedef struct ProtocolIE_Container_8180P92 { + A_SEQUENCE_OF(struct ENB_ENDCConfigUpdateIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P92_t; +typedef struct ProtocolIE_Container_8180P93 { + A_SEQUENCE_OF(struct En_gNB_ENDCConfigUpdateIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P93_t; +typedef struct ProtocolIE_Container_8180P94 { + A_SEQUENCE_OF(struct ENDCConfigurationUpdateAcknowledge_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P94_t; +typedef struct ProtocolIE_Container_8180P95 { + A_SEQUENCE_OF(struct ENB_ENDCConfigUpdateAckIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P95_t; +typedef struct ProtocolIE_Container_8180P96 { + A_SEQUENCE_OF(struct En_gNB_ENDCConfigUpdateAckIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P96_t; +typedef struct ProtocolIE_Container_8180P97 { + A_SEQUENCE_OF(struct ENDCConfigurationUpdateFailure_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P97_t; +typedef struct ProtocolIE_Container_8180P98 { + A_SEQUENCE_OF(struct ENDCCellActivationRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P98_t; +typedef struct ProtocolIE_Container_8180P99 { + A_SEQUENCE_OF(struct ENDCCellActivationResponse_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P99_t; +typedef struct ProtocolIE_Container_8180P100 { + A_SEQUENCE_OF(struct ENDCCellActivationFailure_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P100_t; +typedef struct ProtocolIE_Container_8180P101 { + A_SEQUENCE_OF(struct SecondaryRATDataUsageReport_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P101_t; +typedef struct ProtocolIE_Container_8180P102 { + A_SEQUENCE_OF(struct SgNBActivityNotification_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P102_t; +typedef struct ProtocolIE_Container_8180P103 { + A_SEQUENCE_OF(struct ENDCPartialResetRequired_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P103_t; +typedef struct ProtocolIE_Container_8180P104 { + A_SEQUENCE_OF(struct ENDCPartialResetConfirm_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P104_t; +typedef struct ProtocolIE_Container_8180P105 { + A_SEQUENCE_OF(struct EUTRANRCellResourceCoordinationRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P105_t; +typedef struct ProtocolIE_Container_8180P106 { + A_SEQUENCE_OF(struct ENB_EUTRA_NRCellResourceCoordinationReqIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P106_t; +typedef struct ProtocolIE_Container_8180P107 { + A_SEQUENCE_OF(struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P107_t; +typedef struct ProtocolIE_Container_8180P108 { + A_SEQUENCE_OF(struct EUTRANRCellResourceCoordinationResponse_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P108_t; +typedef struct ProtocolIE_Container_8180P109 { + A_SEQUENCE_OF(struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P109_t; +typedef struct ProtocolIE_Container_8180P110 { + A_SEQUENCE_OF(struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P110_t; +typedef struct ProtocolIE_Container_8180P111 { + A_SEQUENCE_OF(struct ENDCX2RemovalRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P111_t; +typedef struct ProtocolIE_Container_8180P112 { + A_SEQUENCE_OF(struct ENB_ENDCX2RemovalReqIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P112_t; +typedef struct ProtocolIE_Container_8180P113 { + A_SEQUENCE_OF(struct En_gNB_ENDCX2RemovalReqIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P113_t; +typedef struct ProtocolIE_Container_8180P114 { + A_SEQUENCE_OF(struct ENDCX2RemovalResponse_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P114_t; +typedef struct ProtocolIE_Container_8180P115 { + A_SEQUENCE_OF(struct ENB_ENDCX2RemovalReqAckIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P115_t; +typedef struct ProtocolIE_Container_8180P116 { + A_SEQUENCE_OF(struct En_gNB_ENDCX2RemovalReqAckIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P116_t; +typedef struct ProtocolIE_Container_8180P117 { + A_SEQUENCE_OF(struct ENDCX2RemovalFailure_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P117_t; +typedef struct ProtocolIE_Container_8180P118 { + A_SEQUENCE_OF(struct DataForwardingAddressIndication_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P118_t; +typedef struct ProtocolIE_Container_8180P119 { + A_SEQUENCE_OF(struct GNBStatusIndicationIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_Container_8180P119_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P0; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P0_specs_1; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P0_1[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P0_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P1; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P1_specs_3; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P1_3[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P1_constr_3; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P2; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P2_specs_5; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P2_5[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P2_constr_5; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P3; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P3_specs_7; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P3_7[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P3_constr_7; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P4; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P4_specs_9; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P4_9[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P4_constr_9; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P5; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P5_specs_11; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P5_11[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P5_constr_11; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P6; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P6_specs_13; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P6_13[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P6_constr_13; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P7; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P7_specs_15; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P7_15[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P7_constr_15; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P8; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P8_specs_17; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P8_17[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P8_constr_17; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P9; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P9_specs_19; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P9_19[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P9_constr_19; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P10; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P10_specs_21; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P10_21[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P10_constr_21; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P11; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P11_specs_23; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P11_23[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P11_constr_23; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P12; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P12_specs_25; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P12_25[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P12_constr_25; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P13; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P13_specs_27; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P13_27[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P13_constr_27; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P14; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P14_specs_29; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P14_29[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P14_constr_29; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P15; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P15_specs_31; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P15_31[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P15_constr_31; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P16; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P16_specs_33; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P16_33[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P16_constr_33; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P17; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P17_specs_35; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P17_35[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P17_constr_35; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P18; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P18_specs_37; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P18_37[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P18_constr_37; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P19; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P19_specs_39; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P19_39[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P19_constr_39; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P20; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P20_specs_41; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P20_41[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P20_constr_41; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P21; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P21_specs_43; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P21_43[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P21_constr_43; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P22; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P22_specs_45; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P22_45[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P22_constr_45; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P23; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P23_specs_47; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P23_47[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P23_constr_47; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P24; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P24_specs_49; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P24_49[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P24_constr_49; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P25; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P25_specs_51; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P25_51[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P25_constr_51; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P26; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P26_specs_53; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P26_53[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P26_constr_53; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P27; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P27_specs_55; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P27_55[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P27_constr_55; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P28; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P28_specs_57; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P28_57[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P28_constr_57; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P29; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P29_specs_59; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P29_59[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P29_constr_59; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P30; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P30_specs_61; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P30_61[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P30_constr_61; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P31; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P31_specs_63; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P31_63[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P31_constr_63; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P32; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P32_specs_65; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P32_65[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P32_constr_65; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P33; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P33_specs_67; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P33_67[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P33_constr_67; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P34; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P34_specs_69; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P34_69[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P34_constr_69; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P35; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P35_specs_71; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P35_71[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P35_constr_71; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P36; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P36_specs_73; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P36_73[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P36_constr_73; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P37; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P37_specs_75; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P37_75[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P37_constr_75; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P38; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P38_specs_77; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P38_77[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P38_constr_77; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P39; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P39_specs_79; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P39_79[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P39_constr_79; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P40; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P40_specs_81; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P40_81[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P40_constr_81; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P41; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P41_specs_83; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P41_83[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P41_constr_83; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P42; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P42_specs_85; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P42_85[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P42_constr_85; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P43; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P43_specs_87; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P43_87[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P43_constr_87; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P44; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P44_specs_89; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P44_89[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P44_constr_89; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P45; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P45_specs_91; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P45_91[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P45_constr_91; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P46; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P46_specs_93; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P46_93[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P46_constr_93; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P47; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P47_specs_95; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P47_95[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P47_constr_95; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P48; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P48_specs_97; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P48_97[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P48_constr_97; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P49; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P49_specs_99; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P49_99[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P49_constr_99; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P50; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P50_specs_101; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P50_101[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P50_constr_101; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P51; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P51_specs_103; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P51_103[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P51_constr_103; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P52; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P52_specs_105; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P52_105[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P52_constr_105; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P53; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P53_specs_107; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P53_107[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P53_constr_107; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P54; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P54_specs_109; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P54_109[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P54_constr_109; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P55; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P55_specs_111; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P55_111[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P55_constr_111; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P56; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P56_specs_113; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P56_113[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P56_constr_113; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P57; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P57_specs_115; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P57_115[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P57_constr_115; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P58; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P58_specs_117; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P58_117[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P58_constr_117; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P59; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P59_specs_119; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P59_119[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P59_constr_119; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P60; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P60_specs_121; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P60_121[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P60_constr_121; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P61; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P61_specs_123; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P61_123[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P61_constr_123; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P62; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P62_specs_125; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P62_125[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P62_constr_125; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P63; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P63_specs_127; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P63_127[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P63_constr_127; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P64; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P64_specs_129; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P64_129[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P64_constr_129; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P65; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P65_specs_131; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P65_131[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P65_constr_131; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P66; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P66_specs_133; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P66_133[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P66_constr_133; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P67; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P67_specs_135; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P67_135[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P67_constr_135; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P68; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P68_specs_137; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P68_137[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P68_constr_137; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P69; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P69_specs_139; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P69_139[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P69_constr_139; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P70; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P70_specs_141; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P70_141[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P70_constr_141; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P71; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P71_specs_143; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P71_143[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P71_constr_143; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P72; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P72_specs_145; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P72_145[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P72_constr_145; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P73; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P73_specs_147; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P73_147[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P73_constr_147; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P74; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P74_specs_149; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P74_149[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P74_constr_149; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P75; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P75_specs_151; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P75_151[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P75_constr_151; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P76; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P76_specs_153; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P76_153[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P76_constr_153; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P77; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P77_specs_155; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P77_155[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P77_constr_155; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P78; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P78_specs_157; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P78_157[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P78_constr_157; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P79; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P79_specs_159; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P79_159[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P79_constr_159; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P80; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P80_specs_161; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P80_161[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P80_constr_161; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P81; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P81_specs_163; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P81_163[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P81_constr_163; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P82; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P82_specs_165; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P82_165[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P82_constr_165; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P83; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P83_specs_167; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P83_167[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P83_constr_167; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P84; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P84_specs_169; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P84_169[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P84_constr_169; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P85; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P85_specs_171; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P85_171[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P85_constr_171; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P86; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P86_specs_173; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P86_173[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P86_constr_173; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P87; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P87_specs_175; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P87_175[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P87_constr_175; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P88; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P88_specs_177; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P88_177[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P88_constr_177; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P89; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P89_specs_179; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P89_179[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P89_constr_179; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P90; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P90_specs_181; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P90_181[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P90_constr_181; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P91; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P91_specs_183; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P91_183[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P91_constr_183; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P92; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P92_specs_185; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P92_185[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P92_constr_185; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P93; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P93_specs_187; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P93_187[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P93_constr_187; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P94; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P94_specs_189; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P94_189[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P94_constr_189; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P95; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P95_specs_191; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P95_191[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P95_constr_191; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P96; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P96_specs_193; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P96_193[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P96_constr_193; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P97; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P97_specs_195; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P97_195[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P97_constr_195; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P98; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P98_specs_197; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P98_197[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P98_constr_197; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P99; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P99_specs_199; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P99_199[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P99_constr_199; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P100; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P100_specs_201; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P100_201[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P100_constr_201; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P101; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P101_specs_203; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P101_203[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P101_constr_203; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P102; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P102_specs_205; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P102_205[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P102_constr_205; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P103; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P103_specs_207; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P103_207[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P103_constr_207; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P104; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P104_specs_209; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P104_209[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P104_constr_209; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P105; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P105_specs_211; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P105_211[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P105_constr_211; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P106; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P106_specs_213; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P106_213[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P106_constr_213; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P107; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P107_specs_215; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P107_215[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P107_constr_215; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P108; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P108_specs_217; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P108_217[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P108_constr_217; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P109; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P109_specs_219; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P109_219[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P109_constr_219; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P110; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P110_specs_221; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P110_221[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P110_constr_221; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P111; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P111_specs_223; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P111_223[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P111_constr_223; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P112; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P112_specs_225; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P112_225[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P112_constr_225; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P113; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P113_specs_227; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P113_227[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P113_constr_227; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P114; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P114_specs_229; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P114_229[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P114_constr_229; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P115; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P115_specs_231; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P115_231[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P115_constr_231; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P116; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P116_specs_233; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P116_233[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P116_constr_233; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P117; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P117_specs_235; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P117_235[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P117_constr_235; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P118; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P118_specs_237; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P118_237[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P118_constr_237; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_8180P119; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_8180P119_specs_239; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_8180P119_239[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_8180P119_constr_239; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtocolIE_Container_H_ */ +#include diff --git a/asn1c_defs/all-defs/ProtocolIE-ContainerList.c b/asn1c_defs/all-defs/ProtocolIE-ContainerList.c new file mode 100644 index 0000000..0132f74 --- /dev/null +++ b/asn1c_defs/all-defs/ProtocolIE-ContainerList.c @@ -0,0 +1,9 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-Containers" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ProtocolIE-ContainerList.h" + diff --git a/asn1c_defs/all-defs/ProtocolIE-ContainerList.h b/asn1c_defs/all-defs/ProtocolIE-ContainerList.h new file mode 100644 index 0000000..7be35a5 --- /dev/null +++ b/asn1c_defs/all-defs/ProtocolIE-ContainerList.h @@ -0,0 +1,23 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-Containers" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ProtocolIE_ContainerList_H_ +#define _ProtocolIE_ContainerList_H_ + + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtocolIE_ContainerList_H_ */ +#include diff --git a/asn1c_defs/all-defs/ProtocolIE-ContainerPair.c b/asn1c_defs/all-defs/ProtocolIE-ContainerPair.c new file mode 100644 index 0000000..0bf55cf --- /dev/null +++ b/asn1c_defs/all-defs/ProtocolIE-ContainerPair.c @@ -0,0 +1,9 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-Containers" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ProtocolIE-ContainerPair.h" + diff --git a/asn1c_defs/all-defs/ProtocolIE-ContainerPair.h b/asn1c_defs/all-defs/ProtocolIE-ContainerPair.h new file mode 100644 index 0000000..1b866eb --- /dev/null +++ b/asn1c_defs/all-defs/ProtocolIE-ContainerPair.h @@ -0,0 +1,23 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-Containers" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ProtocolIE_ContainerPair_H_ +#define _ProtocolIE_ContainerPair_H_ + + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtocolIE_ContainerPair_H_ */ +#include diff --git a/asn1c_defs/all-defs/ProtocolIE-ContainerPairList.c b/asn1c_defs/all-defs/ProtocolIE-ContainerPairList.c new file mode 100644 index 0000000..081d1a2 --- /dev/null +++ b/asn1c_defs/all-defs/ProtocolIE-ContainerPairList.c @@ -0,0 +1,9 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-Containers" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ProtocolIE-ContainerPairList.h" + diff --git a/asn1c_defs/all-defs/ProtocolIE-ContainerPairList.h b/asn1c_defs/all-defs/ProtocolIE-ContainerPairList.h new file mode 100644 index 0000000..8cf7ca1 --- /dev/null +++ b/asn1c_defs/all-defs/ProtocolIE-ContainerPairList.h @@ -0,0 +1,23 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-Containers" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ProtocolIE_ContainerPairList_H_ +#define _ProtocolIE_ContainerPairList_H_ + + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtocolIE_ContainerPairList_H_ */ +#include diff --git a/asn1c_defs/all-defs/ProtocolIE-Field.c b/asn1c_defs/all-defs/ProtocolIE-Field.c new file mode 100644 index 0000000..b0fb2fb --- /dev/null +++ b/asn1c_defs/all-defs/ProtocolIE-Field.c @@ -0,0 +1,48241 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-Containers" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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/asn1c_defs/all-defs/ProtocolIE-Field.h b/asn1c_defs/all-defs/ProtocolIE-Field.h new file mode 100644 index 0000000..221a604 --- /dev/null +++ b/asn1c_defs/all-defs/ProtocolIE-Field.h @@ -0,0 +1,4885 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-Containers" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ProtocolIE_Field_H_ +#define _ProtocolIE_Field_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-ID.h" +#include "Criticality.h" +#include +#include +#include "RICaction-ToBeSetup-Item.h" +#include "Presence.h" +#include +#include +#include +#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 diff --git a/asn1c_defs/all-defs/ProtocolIE-FieldPair.c b/asn1c_defs/all-defs/ProtocolIE-FieldPair.c new file mode 100644 index 0000000..549de11 --- /dev/null +++ b/asn1c_defs/all-defs/ProtocolIE-FieldPair.c @@ -0,0 +1,9 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-Containers" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ProtocolIE-FieldPair.h" + diff --git a/asn1c_defs/all-defs/ProtocolIE-FieldPair.h b/asn1c_defs/all-defs/ProtocolIE-FieldPair.h new file mode 100644 index 0000000..9ed3e3e --- /dev/null +++ b/asn1c_defs/all-defs/ProtocolIE-FieldPair.h @@ -0,0 +1,23 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-Containers" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ProtocolIE_FieldPair_H_ +#define _ProtocolIE_FieldPair_H_ + + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtocolIE_FieldPair_H_ */ +#include diff --git a/asn1c_defs/all-defs/ProtocolIE-ID.c b/asn1c_defs/all-defs/ProtocolIE-ID.c new file mode 100644 index 0000000..4ea57c7 --- /dev/null +++ b/asn1c_defs/all-defs/ProtocolIE-ID.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-CommonDataTypes" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_ProtocolIE_ID_constr_1, ProtocolIE_ID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/ProtocolIE-ID.h b/asn1c_defs/all-defs/ProtocolIE-ID.h new file mode 100644 index 0000000..f210811 --- /dev/null +++ b/asn1c_defs/all-defs/ProtocolIE-ID.h @@ -0,0 +1,396 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-CommonDataTypes" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ProtocolIE_ID_H_ +#define _ProtocolIE_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/ProtocolIE-Single-Container.c b/asn1c_defs/all-defs/ProtocolIE-Single-Container.c new file mode 100644 index 0000000..1f36ff0 --- /dev/null +++ b/asn1c_defs/all-defs/ProtocolIE-Single-Container.c @@ -0,0 +1,1136 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-Containers" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8183P0_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P0 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P0_tags_1, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P0_tags_1) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P0_tags_1[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P0_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P0_tags_1) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P0_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_8183P1_tags_2[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P1 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P1_tags_2, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P1_tags_2) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P1_tags_2[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P1_tags_2, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P1_tags_2) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P1_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_8183P2_tags_3[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P2 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P2_tags_3, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P2_tags_3) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P2_tags_3[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P2_tags_3, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P2_tags_3) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P2_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_8183P3_tags_4[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P3 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P3_tags_4, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P3_tags_4) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P3_tags_4[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P3_tags_4, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P3_tags_4) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P3_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_8183P4_tags_5[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P4 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P4_tags_5, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P4_tags_5) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P4_tags_5[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P4_tags_5, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P4_tags_5) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P4_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_8183P5_tags_6[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P5 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P5_tags_6, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P5_tags_6) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P5_tags_6[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P5_tags_6, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P5_tags_6) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P5_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_8183P6_tags_7[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P6 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P6_tags_7, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P6_tags_7) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P6_tags_7[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P6_tags_7, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P6_tags_7) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P6_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_8183P7_tags_8[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P7 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P7_tags_8, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P7_tags_8) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P7_tags_8[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P7_tags_8, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P7_tags_8) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P7_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_8183P8_tags_9[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P8 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P8_tags_9, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P8_tags_9) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P8_tags_9[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P8_tags_9, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P8_tags_9) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P8_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_8183P9_tags_10[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P9 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P9_tags_10, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P9_tags_10) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P9_tags_10[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P9_tags_10, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P9_tags_10) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P9_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_8183P10_tags_11[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P10 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P10_tags_11, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P10_tags_11) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P10_tags_11[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P10_tags_11, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P10_tags_11) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P10_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_8183P11_tags_12[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P11 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P11_tags_12, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P11_tags_12) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P11_tags_12[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P11_tags_12, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P11_tags_12) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P11_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_8183P12_tags_13[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P12 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P12_tags_13, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P12_tags_13) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P12_tags_13[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P12_tags_13, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P12_tags_13) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P12_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_8183P13_tags_14[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P13 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P13_tags_14, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P13_tags_14) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P13_tags_14[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P13_tags_14, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P13_tags_14) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P13_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_8183P14_tags_15[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P14 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P14_tags_15, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P14_tags_15) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P14_tags_15[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P14_tags_15, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P14_tags_15) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P14_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_8183P15_tags_16[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P15 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P15_tags_16, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P15_tags_16) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P15_tags_16[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P15_tags_16, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P15_tags_16) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P15_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_8183P16_tags_17[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P16 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P16_tags_17, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P16_tags_17) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P16_tags_17[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P16_tags_17, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P16_tags_17) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P16_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_8183P17_tags_18[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P17 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P17_tags_18, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P17_tags_18) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P17_tags_18[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P17_tags_18, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P17_tags_18) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P17_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_8183P18_tags_19[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P18 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P18_tags_19, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P18_tags_19) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P18_tags_19[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P18_tags_19, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P18_tags_19) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P18_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_8183P19_tags_20[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P19 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P19_tags_20, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P19_tags_20) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P19_tags_20[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P19_tags_20, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P19_tags_20) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P19_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_8183P20_tags_21[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P20 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P20_tags_21, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P20_tags_21) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P20_tags_21[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P20_tags_21, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P20_tags_21) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P20_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_8183P21_tags_22[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P21 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P21_tags_22, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P21_tags_22) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P21_tags_22[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P21_tags_22, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P21_tags_22) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P21_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_8183P22_tags_23[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P22 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P22_tags_23, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P22_tags_23) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P22_tags_23[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P22_tags_23, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P22_tags_23) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P22_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_8183P23_tags_24[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P23 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P23_tags_24, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P23_tags_24) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P23_tags_24[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P23_tags_24, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P23_tags_24) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P23_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_8183P24_tags_25[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P24 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P24_tags_25, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P24_tags_25) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P24_tags_25[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P24_tags_25, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P24_tags_25) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P24_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_8183P25_tags_26[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P25 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P25_tags_26, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P25_tags_26) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P25_tags_26[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P25_tags_26, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P25_tags_26) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P25_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_8183P26_tags_27[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P26 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P26_tags_27, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P26_tags_27) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P26_tags_27[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P26_tags_27, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P26_tags_27) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P26_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_8183P27_tags_28[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P27 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P27_tags_28, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P27_tags_28) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P27_tags_28[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P27_tags_28, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P27_tags_28) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P27_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_8183P28_tags_29[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P28 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P28_tags_29, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P28_tags_29) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P28_tags_29[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P28_tags_29, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P28_tags_29) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P28_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_8183P29_tags_30[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P29 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P29_tags_30, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P29_tags_30) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P29_tags_30[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P29_tags_30, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P29_tags_30) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P29_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_8183P30_tags_31[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P30 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P30_tags_31, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P30_tags_31) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P30_tags_31[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P30_tags_31, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P30_tags_31) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P30_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_8183P31_tags_32[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P31 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P31_tags_32, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P31_tags_32) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P31_tags_32[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P31_tags_32, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P31_tags_32) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P31_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_8183P32_tags_33[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P32 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P32_tags_33, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P32_tags_33) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P32_tags_33[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P32_tags_33, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P32_tags_33) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P32_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_8183P33_tags_34[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P33 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P33_tags_34, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P33_tags_34) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P33_tags_34[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P33_tags_34, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P33_tags_34) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P33_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_8183P34_tags_35[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P34 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P34_tags_35, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P34_tags_35) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P34_tags_35[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P34_tags_35, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P34_tags_35) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P34_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_8183P35_tags_36[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P35 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P35_tags_36, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P35_tags_36) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P35_tags_36[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P35_tags_36, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P35_tags_36) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P35_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_8183P36_tags_37[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P36 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P36_tags_37, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P36_tags_37) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P36_tags_37[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P36_tags_37, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P36_tags_37) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P36_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_8183P37_tags_38[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P37 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P37_tags_38, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P37_tags_38) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P37_tags_38[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P37_tags_38, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P37_tags_38) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P37_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_8183P38_tags_39[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P38 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P38_tags_39, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P38_tags_39) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P38_tags_39[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P38_tags_39, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P38_tags_39) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P38_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_8183P39_tags_40[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P39 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P39_tags_40, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P39_tags_40) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P39_tags_40[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P39_tags_40, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P39_tags_40) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P39_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_8183P40_tags_41[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P40 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P40_tags_41, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P40_tags_41) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P40_tags_41[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P40_tags_41, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P40_tags_41) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P40_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_8183P41_tags_42[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P41 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P41_tags_42, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P41_tags_42) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P41_tags_42[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P41_tags_42, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P41_tags_42) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P41_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_8183P42_tags_43[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P42 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P42_tags_43, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P42_tags_43) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P42_tags_43[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P42_tags_43, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P42_tags_43) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P42_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_8183P43_tags_44[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P43 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P43_tags_44, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P43_tags_44) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P43_tags_44[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P43_tags_44, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P43_tags_44) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P43_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_8183P44_tags_45[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P44 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P44_tags_45, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P44_tags_45) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P44_tags_45[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P44_tags_45, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P44_tags_45) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P44_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_8183P45_tags_46[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P45 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P45_tags_46, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P45_tags_46) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P45_tags_46[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P45_tags_46, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P45_tags_46) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P45_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_8183P46_tags_47[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P46 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P46_tags_47, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P46_tags_47) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P46_tags_47[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P46_tags_47, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P46_tags_47) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P46_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_8183P47_tags_48[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P47 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P47_tags_48, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P47_tags_48) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P47_tags_48[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P47_tags_48, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P47_tags_48) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P47_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_8183P48_tags_49[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P48 = { + "ProtocolIE-Single-Container", + "ProtocolIE-Single-Container", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_Single_Container_8183P48_tags_49, + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P48_tags_49) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P48_tags_49[0]), /* 1 */ + asn_DEF_ProtocolIE_Single_Container_8183P48_tags_49, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_Single_Container_8183P48_tags_49) + /sizeof(asn_DEF_ProtocolIE_Single_Container_8183P48_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/asn1c_defs/all-defs/ProtocolIE-Single-Container.h b/asn1c_defs/all-defs/ProtocolIE-Single-Container.h new file mode 100644 index 0000000..7fccb9a --- /dev/null +++ b/asn1c_defs/all-defs/ProtocolIE-Single-Container.h @@ -0,0 +1,667 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-Containers" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ProtocolIE_Single_Container_H_ +#define _ProtocolIE_Single_Container_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Field.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ProtocolIE-Single-Container */ +typedef RICaction_ToBeSetup_ItemIEs_t ProtocolIE_Single_Container_8183P0_t; +typedef RICaction_Admitted_ItemIEs_t ProtocolIE_Single_Container_8183P1_t; +typedef RICaction_NotAdmitted_ItemIEs_t ProtocolIE_Single_Container_8183P2_t; +typedef RANfunction_ItemIEs_t ProtocolIE_Single_Container_8183P3_t; +typedef RANfunctionID_ItemIEs_t ProtocolIE_Single_Container_8183P4_t; +typedef RANfunctionIDcause_ItemIEs_t ProtocolIE_Single_Container_8183P5_t; +typedef E_RABs_ToBeSetup_ItemIEs_t ProtocolIE_Single_Container_8183P6_t; +typedef E_RABs_Admitted_ItemIEs_t ProtocolIE_Single_Container_8183P7_t; +typedef E_RABs_SubjectToStatusTransfer_ItemIEs_t ProtocolIE_Single_Container_8183P8_t; +typedef CellInformation_ItemIEs_t ProtocolIE_Single_Container_8183P9_t; +typedef CellToReport_ItemIEs_t ProtocolIE_Single_Container_8183P10_t; +typedef MeasurementInitiationResult_ItemIEs_t ProtocolIE_Single_Container_8183P11_t; +typedef MeasurementFailureCause_ItemIEs_t ProtocolIE_Single_Container_8183P12_t; +typedef CompleteFailureCauseInformation_ItemIEs_t ProtocolIE_Single_Container_8183P13_t; +typedef CellMeasurementResult_ItemIEs_t ProtocolIE_Single_Container_8183P14_t; +typedef E_RABs_ToBeAdded_ItemIEs_t ProtocolIE_Single_Container_8183P15_t; +typedef E_RABs_Admitted_ToBeAdded_ItemIEs_t ProtocolIE_Single_Container_8183P16_t; +typedef E_RABs_ToBeAdded_ModReqItemIEs_t ProtocolIE_Single_Container_8183P17_t; +typedef E_RABs_ToBeModified_ModReqItemIEs_t ProtocolIE_Single_Container_8183P18_t; +typedef E_RABs_ToBeReleased_ModReqItemIEs_t ProtocolIE_Single_Container_8183P19_t; +typedef E_RABs_Admitted_ToBeAdded_ModAckItemIEs_t ProtocolIE_Single_Container_8183P20_t; +typedef E_RABs_Admitted_ToBeModified_ModAckItemIEs_t ProtocolIE_Single_Container_8183P21_t; +typedef E_RABs_Admitted_ToBeReleased_ModAckItemIEs_t ProtocolIE_Single_Container_8183P22_t; +typedef E_RABs_ToBeReleased_ModReqdItemIEs_t ProtocolIE_Single_Container_8183P23_t; +typedef E_RABs_ToBeReleased_RelReqItemIEs_t ProtocolIE_Single_Container_8183P24_t; +typedef E_RABs_ToBeReleased_RelConfItemIEs_t ProtocolIE_Single_Container_8183P25_t; +typedef E_RABs_SubjectToCounterCheckItemIEs_t ProtocolIE_Single_Container_8183P26_t; +typedef E_RABs_ToBeSetupRetrieve_ItemIEs_t ProtocolIE_Single_Container_8183P27_t; +typedef E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_t ProtocolIE_Single_Container_8183P28_t; +typedef E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_t ProtocolIE_Single_Container_8183P29_t; +typedef E_RABs_ToBeAdded_SgNBModReq_ItemIEs_t ProtocolIE_Single_Container_8183P30_t; +typedef E_RABs_ToBeModified_SgNBModReq_ItemIEs_t ProtocolIE_Single_Container_8183P31_t; +typedef E_RABs_ToBeReleased_SgNBModReq_ItemIEs_t ProtocolIE_Single_Container_8183P32_t; +typedef E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_t ProtocolIE_Single_Container_8183P33_t; +typedef E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_t ProtocolIE_Single_Container_8183P34_t; +typedef E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_t ProtocolIE_Single_Container_8183P35_t; +typedef E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_t ProtocolIE_Single_Container_8183P36_t; +typedef E_RABs_ToBeModified_SgNBModReqd_ItemIEs_t ProtocolIE_Single_Container_8183P37_t; +typedef E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_t ProtocolIE_Single_Container_8183P38_t; +typedef E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_t ProtocolIE_Single_Container_8183P39_t; +typedef E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_t ProtocolIE_Single_Container_8183P40_t; +typedef E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_t ProtocolIE_Single_Container_8183P41_t; +typedef E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_t ProtocolIE_Single_Container_8183P42_t; +typedef E_RABs_SubjectToSgNBCounterCheck_ItemIEs_t ProtocolIE_Single_Container_8183P43_t; +typedef E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_t ProtocolIE_Single_Container_8183P44_t; +typedef E_RABs_DataForwardingAddress_ItemIEs_t ProtocolIE_Single_Container_8183P45_t; +typedef E_RAB_ItemIEs_t ProtocolIE_Single_Container_8183P46_t; +typedef E_RABUsageReport_ItemIEs_t ProtocolIE_Single_Container_8183P47_t; +typedef SecondaryRATUsageReport_ItemIEs_t ProtocolIE_Single_Container_8183P48_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P0; +asn_struct_free_f ProtocolIE_Single_Container_8183P0_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P0_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P0_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P0_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P0_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P0_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P0_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P0_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P0_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P0_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P0_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P1; +asn_struct_free_f ProtocolIE_Single_Container_8183P1_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P1_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P1_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P1_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P1_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P1_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P1_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P1_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P1_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P1_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P1_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P2; +asn_struct_free_f ProtocolIE_Single_Container_8183P2_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P2_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P2_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P2_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P2_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P2_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P2_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P2_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P2_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P2_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P2_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P3; +asn_struct_free_f ProtocolIE_Single_Container_8183P3_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P3_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P3_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P3_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P3_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P3_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P3_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P3_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P3_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P3_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P3_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P4; +asn_struct_free_f ProtocolIE_Single_Container_8183P4_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P4_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P4_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P4_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P4_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P4_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P4_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P4_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P4_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P4_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P4_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P5; +asn_struct_free_f ProtocolIE_Single_Container_8183P5_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P5_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P5_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P5_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P5_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P5_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P5_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P5_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P5_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P5_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P5_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P6; +asn_struct_free_f ProtocolIE_Single_Container_8183P6_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P6_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P6_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P6_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P6_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P6_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P6_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P6_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P6_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P6_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P6_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P7; +asn_struct_free_f ProtocolIE_Single_Container_8183P7_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P7_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P7_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P7_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P7_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P7_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P7_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P7_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P7_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P7_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P7_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P8; +asn_struct_free_f ProtocolIE_Single_Container_8183P8_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P8_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P8_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P8_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P8_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P8_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P8_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P8_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P8_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P8_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P8_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P9; +asn_struct_free_f ProtocolIE_Single_Container_8183P9_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P9_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P9_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P9_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P9_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P9_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P9_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P9_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P9_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P9_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P9_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P10; +asn_struct_free_f ProtocolIE_Single_Container_8183P10_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P10_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P10_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P10_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P10_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P10_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P10_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P10_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P10_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P10_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P10_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P11; +asn_struct_free_f ProtocolIE_Single_Container_8183P11_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P11_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P11_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P11_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P11_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P11_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P11_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P11_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P11_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P11_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P11_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P12; +asn_struct_free_f ProtocolIE_Single_Container_8183P12_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P12_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P12_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P12_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P12_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P12_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P12_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P12_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P12_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P12_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P12_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P13; +asn_struct_free_f ProtocolIE_Single_Container_8183P13_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P13_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P13_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P13_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P13_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P13_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P13_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P13_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P13_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P13_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P13_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P14; +asn_struct_free_f ProtocolIE_Single_Container_8183P14_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P14_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P14_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P14_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P14_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P14_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P14_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P14_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P14_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P14_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P14_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P15; +asn_struct_free_f ProtocolIE_Single_Container_8183P15_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P15_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P15_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P15_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P15_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P15_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P15_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P15_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P15_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P15_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P15_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P16; +asn_struct_free_f ProtocolIE_Single_Container_8183P16_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P16_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P16_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P16_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P16_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P16_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P16_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P16_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P16_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P16_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P16_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P17; +asn_struct_free_f ProtocolIE_Single_Container_8183P17_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P17_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P17_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P17_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P17_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P17_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P17_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P17_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P17_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P17_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P17_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P18; +asn_struct_free_f ProtocolIE_Single_Container_8183P18_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P18_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P18_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P18_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P18_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P18_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P18_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P18_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P18_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P18_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P18_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P19; +asn_struct_free_f ProtocolIE_Single_Container_8183P19_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P19_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P19_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P19_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P19_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P19_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P19_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P19_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P19_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P19_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P19_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P20; +asn_struct_free_f ProtocolIE_Single_Container_8183P20_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P20_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P20_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P20_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P20_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P20_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P20_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P20_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P20_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P20_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P20_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P21; +asn_struct_free_f ProtocolIE_Single_Container_8183P21_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P21_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P21_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P21_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P21_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P21_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P21_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P21_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P21_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P21_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P21_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P22; +asn_struct_free_f ProtocolIE_Single_Container_8183P22_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P22_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P22_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P22_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P22_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P22_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P22_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P22_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P22_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P22_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P22_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P23; +asn_struct_free_f ProtocolIE_Single_Container_8183P23_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P23_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P23_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P23_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P23_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P23_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P23_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P23_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P23_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P23_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P23_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P24; +asn_struct_free_f ProtocolIE_Single_Container_8183P24_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P24_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P24_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P24_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P24_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P24_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P24_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P24_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P24_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P24_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P24_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P25; +asn_struct_free_f ProtocolIE_Single_Container_8183P25_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P25_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P25_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P25_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P25_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P25_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P25_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P25_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P25_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P25_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P25_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P26; +asn_struct_free_f ProtocolIE_Single_Container_8183P26_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P26_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P26_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P26_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P26_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P26_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P26_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P26_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P26_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P26_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P26_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P27; +asn_struct_free_f ProtocolIE_Single_Container_8183P27_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P27_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P27_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P27_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P27_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P27_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P27_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P27_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P27_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P27_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P27_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P28; +asn_struct_free_f ProtocolIE_Single_Container_8183P28_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P28_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P28_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P28_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P28_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P28_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P28_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P28_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P28_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P28_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P28_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P29; +asn_struct_free_f ProtocolIE_Single_Container_8183P29_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P29_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P29_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P29_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P29_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P29_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P29_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P29_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P29_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P29_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P29_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P30; +asn_struct_free_f ProtocolIE_Single_Container_8183P30_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P30_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P30_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P30_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P30_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P30_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P30_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P30_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P30_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P30_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P30_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P31; +asn_struct_free_f ProtocolIE_Single_Container_8183P31_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P31_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P31_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P31_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P31_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P31_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P31_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P31_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P31_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P31_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P31_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P32; +asn_struct_free_f ProtocolIE_Single_Container_8183P32_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P32_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P32_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P32_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P32_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P32_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P32_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P32_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P32_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P32_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P32_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P33; +asn_struct_free_f ProtocolIE_Single_Container_8183P33_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P33_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P33_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P33_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P33_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P33_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P33_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P33_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P33_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P33_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P33_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P34; +asn_struct_free_f ProtocolIE_Single_Container_8183P34_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P34_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P34_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P34_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P34_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P34_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P34_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P34_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P34_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P34_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P34_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P35; +asn_struct_free_f ProtocolIE_Single_Container_8183P35_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P35_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P35_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P35_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P35_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P35_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P35_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P35_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P35_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P35_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P35_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P36; +asn_struct_free_f ProtocolIE_Single_Container_8183P36_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P36_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P36_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P36_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P36_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P36_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P36_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P36_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P36_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P36_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P36_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P37; +asn_struct_free_f ProtocolIE_Single_Container_8183P37_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P37_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P37_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P37_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P37_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P37_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P37_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P37_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P37_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P37_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P37_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P38; +asn_struct_free_f ProtocolIE_Single_Container_8183P38_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P38_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P38_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P38_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P38_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P38_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P38_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P38_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P38_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P38_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P38_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P39; +asn_struct_free_f ProtocolIE_Single_Container_8183P39_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P39_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P39_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P39_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P39_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P39_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P39_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P39_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P39_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P39_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P39_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P40; +asn_struct_free_f ProtocolIE_Single_Container_8183P40_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P40_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P40_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P40_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P40_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P40_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P40_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P40_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P40_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P40_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P40_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P41; +asn_struct_free_f ProtocolIE_Single_Container_8183P41_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P41_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P41_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P41_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P41_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P41_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P41_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P41_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P41_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P41_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P41_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P42; +asn_struct_free_f ProtocolIE_Single_Container_8183P42_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P42_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P42_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P42_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P42_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P42_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P42_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P42_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P42_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P42_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P42_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P43; +asn_struct_free_f ProtocolIE_Single_Container_8183P43_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P43_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P43_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P43_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P43_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P43_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P43_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P43_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P43_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P43_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P43_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P44; +asn_struct_free_f ProtocolIE_Single_Container_8183P44_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P44_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P44_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P44_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P44_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P44_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P44_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P44_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P44_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P44_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P44_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P45; +asn_struct_free_f ProtocolIE_Single_Container_8183P45_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P45_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P45_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P45_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P45_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P45_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P45_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P45_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P45_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P45_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P45_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P46; +asn_struct_free_f ProtocolIE_Single_Container_8183P46_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P46_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P46_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P46_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P46_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P46_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P46_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P46_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P46_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P46_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P46_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P47; +asn_struct_free_f ProtocolIE_Single_Container_8183P47_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P47_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P47_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P47_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P47_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P47_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P47_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P47_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P47_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P47_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P47_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8183P48; +asn_struct_free_f ProtocolIE_Single_Container_8183P48_free; +asn_struct_print_f ProtocolIE_Single_Container_8183P48_print; +asn_constr_check_f ProtocolIE_Single_Container_8183P48_constraint; +ber_type_decoder_f ProtocolIE_Single_Container_8183P48_decode_ber; +der_type_encoder_f ProtocolIE_Single_Container_8183P48_encode_der; +xer_type_decoder_f ProtocolIE_Single_Container_8183P48_decode_xer; +xer_type_encoder_f ProtocolIE_Single_Container_8183P48_encode_xer; +per_type_decoder_f ProtocolIE_Single_Container_8183P48_decode_uper; +per_type_encoder_f ProtocolIE_Single_Container_8183P48_encode_uper; +per_type_decoder_f ProtocolIE_Single_Container_8183P48_decode_aper; +per_type_encoder_f ProtocolIE_Single_Container_8183P48_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ProtocolIE_Single_Container_H_ */ +#include diff --git a/asn1c_defs/all-defs/QCI.c b/asn1c_defs/all-defs/QCI.c new file mode 100644 index 0000000..4b913b4 --- /dev/null +++ b/asn1c_defs/all-defs/QCI.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_QCI_constr_1, QCI_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/QCI.h b/asn1c_defs/all-defs/QCI.h new file mode 100644 index 0000000..cd93b42 --- /dev/null +++ b/asn1c_defs/all-defs/QCI.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _QCI_H_ +#define _QCI_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/RANfunction-Item.c b/asn1c_defs/all-defs/RANfunction-Item.c new file mode 100644 index 0000000..a6992c3 --- /dev/null +++ b/asn1c_defs/all-defs/RANfunction-Item.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/RANfunction-Item.h b/asn1c_defs/all-defs/RANfunction-Item.h new file mode 100644 index 0000000..a0438b1 --- /dev/null +++ b/asn1c_defs/all-defs/RANfunction-Item.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RANfunction_Item_H_ +#define _RANfunction_Item_H_ + + +#include + +/* Including external dependencies */ +#include "RANfunctionID.h" +#include "RANfunctionDefinition.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/RANfunctionDefinition.c b/asn1c_defs/all-defs/RANfunctionDefinition.c new file mode 100644 index 0000000..cc31e6c --- /dev/null +++ b/asn1c_defs/all-defs/RANfunctionDefinition.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/RANfunctionDefinition.h b/asn1c_defs/all-defs/RANfunctionDefinition.h new file mode 100644 index 0000000..a74dec0 --- /dev/null +++ b/asn1c_defs/all-defs/RANfunctionDefinition.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RANfunctionDefinition_H_ +#define _RANfunctionDefinition_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/RANfunctionID-Item.c b/asn1c_defs/all-defs/RANfunctionID-Item.c new file mode 100644 index 0000000..9dd466a --- /dev/null +++ b/asn1c_defs/all-defs/RANfunctionID-Item.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/RANfunctionID-Item.h b/asn1c_defs/all-defs/RANfunctionID-Item.h new file mode 100644 index 0000000..cac44fb --- /dev/null +++ b/asn1c_defs/all-defs/RANfunctionID-Item.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RANfunctionID_Item_H_ +#define _RANfunctionID_Item_H_ + + +#include + +/* Including external dependencies */ +#include "RANfunctionID.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/RANfunctionID.c b/asn1c_defs/all-defs/RANfunctionID.c new file mode 100644 index 0000000..c6cdb51 --- /dev/null +++ b/asn1c_defs/all-defs/RANfunctionID.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_RANfunctionID_constr_1, RANfunctionID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/RANfunctionID.h b/asn1c_defs/all-defs/RANfunctionID.h new file mode 100644 index 0000000..ae782d2 --- /dev/null +++ b/asn1c_defs/all-defs/RANfunctionID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RANfunctionID_H_ +#define _RANfunctionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/RANfunctionIDcause-Item.c b/asn1c_defs/all-defs/RANfunctionIDcause-Item.c new file mode 100644 index 0000000..d3a1770 --- /dev/null +++ b/asn1c_defs/all-defs/RANfunctionIDcause-Item.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/RANfunctionIDcause-Item.h b/asn1c_defs/all-defs/RANfunctionIDcause-Item.h new file mode 100644 index 0000000..714c1c0 --- /dev/null +++ b/asn1c_defs/all-defs/RANfunctionIDcause-Item.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RANfunctionIDcause_Item_H_ +#define _RANfunctionIDcause_Item_H_ + + +#include + +/* Including external dependencies */ +#include "RANfunctionID.h" +#include "RICcause.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/RANfunctions-List.c b/asn1c_defs/all-defs/RANfunctions-List.c new file mode 100644 index 0000000..f677485 --- /dev/null +++ b/asn1c_defs/all-defs/RANfunctions-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "RANfunctions-List.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P3, + 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 */ + { 0, &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/asn1c_defs/all-defs/RANfunctions-List.h b/asn1c_defs/all-defs/RANfunctions-List.h new file mode 100644 index 0000000..7a2a630 --- /dev/null +++ b/asn1c_defs/all-defs/RANfunctions-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RANfunctions_List_H_ +#define _RANfunctions_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/RANfunctionsID-List.c b/asn1c_defs/all-defs/RANfunctionsID-List.c new file mode 100644 index 0000000..b6d75ec --- /dev/null +++ b/asn1c_defs/all-defs/RANfunctionsID-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "RANfunctionsID-List.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P4, + 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 */ + { 0, &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/asn1c_defs/all-defs/RANfunctionsID-List.h b/asn1c_defs/all-defs/RANfunctionsID-List.h new file mode 100644 index 0000000..2252bc0 --- /dev/null +++ b/asn1c_defs/all-defs/RANfunctionsID-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RANfunctionsID_List_H_ +#define _RANfunctionsID_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/RANfunctionsIDcause-List.c b/asn1c_defs/all-defs/RANfunctionsIDcause-List.c new file mode 100644 index 0000000..5148139 --- /dev/null +++ b/asn1c_defs/all-defs/RANfunctionsIDcause-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "RANfunctionsIDcause-List.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P5, + 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 */ + { 0, &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/asn1c_defs/all-defs/RANfunctionsIDcause-List.h b/asn1c_defs/all-defs/RANfunctionsIDcause-List.h new file mode 100644 index 0000000..dbb178f --- /dev/null +++ b/asn1c_defs/all-defs/RANfunctionsIDcause-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RANfunctionsIDcause_List_H_ +#define _RANfunctionsIDcause_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/RICaction-Admitted-Item.c b/asn1c_defs/all-defs/RICaction-Admitted-Item.c new file mode 100644 index 0000000..72073b7 --- /dev/null +++ b/asn1c_defs/all-defs/RICaction-Admitted-Item.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/RICaction-Admitted-Item.h b/asn1c_defs/all-defs/RICaction-Admitted-Item.h new file mode 100644 index 0000000..8f8934e --- /dev/null +++ b/asn1c_defs/all-defs/RICaction-Admitted-Item.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICaction_Admitted_Item_H_ +#define _RICaction_Admitted_Item_H_ + + +#include + +/* Including external dependencies */ +#include "RICactionID.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/RICaction-Admitted-List.c b/asn1c_defs/all-defs/RICaction-Admitted-List.c new file mode 100644 index 0000000..9913977 --- /dev/null +++ b/asn1c_defs/all-defs/RICaction-Admitted-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "RICaction-Admitted-List.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P1, + 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 */ + { 0, &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/asn1c_defs/all-defs/RICaction-Admitted-List.h b/asn1c_defs/all-defs/RICaction-Admitted-List.h new file mode 100644 index 0000000..11b81a4 --- /dev/null +++ b/asn1c_defs/all-defs/RICaction-Admitted-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICaction_Admitted_List_H_ +#define _RICaction_Admitted_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/RICaction-NotAdmitted-Item.c b/asn1c_defs/all-defs/RICaction-NotAdmitted-Item.c new file mode 100644 index 0000000..7d71f42 --- /dev/null +++ b/asn1c_defs/all-defs/RICaction-NotAdmitted-Item.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/RICaction-NotAdmitted-Item.h b/asn1c_defs/all-defs/RICaction-NotAdmitted-Item.h new file mode 100644 index 0000000..d77f480 --- /dev/null +++ b/asn1c_defs/all-defs/RICaction-NotAdmitted-Item.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICaction_NotAdmitted_Item_H_ +#define _RICaction_NotAdmitted_Item_H_ + + +#include + +/* Including external dependencies */ +#include "RICactionID.h" +#include "RICcause.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/RICaction-NotAdmitted-List.c b/asn1c_defs/all-defs/RICaction-NotAdmitted-List.c new file mode 100644 index 0000000..2a52672 --- /dev/null +++ b/asn1c_defs/all-defs/RICaction-NotAdmitted-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "RICaction-NotAdmitted-List.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P2, + 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 */ + { 0, &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/asn1c_defs/all-defs/RICaction-NotAdmitted-List.h b/asn1c_defs/all-defs/RICaction-NotAdmitted-List.h new file mode 100644 index 0000000..9be94ef --- /dev/null +++ b/asn1c_defs/all-defs/RICaction-NotAdmitted-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICaction_NotAdmitted_List_H_ +#define _RICaction_NotAdmitted_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/RICaction-ToBeSetup-Item.c b/asn1c_defs/all-defs/RICaction-ToBeSetup-Item.c new file mode 100644 index 0000000..343ab1f --- /dev/null +++ b/asn1c_defs/all-defs/RICaction-ToBeSetup-Item.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/RICaction-ToBeSetup-Item.h b/asn1c_defs/all-defs/RICaction-ToBeSetup-Item.h new file mode 100644 index 0000000..f1d8f63 --- /dev/null +++ b/asn1c_defs/all-defs/RICaction-ToBeSetup-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICaction_ToBeSetup_Item_H_ +#define _RICaction_ToBeSetup_Item_H_ + + +#include + +/* Including external dependencies */ +#include "RICactionID.h" +#include "RICactionType.h" +#include "RICactionDefinition.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/RICactionDefinition.c b/asn1c_defs/all-defs/RICactionDefinition.c new file mode 100644 index 0000000..97454e1 --- /dev/null +++ b/asn1c_defs/all-defs/RICactionDefinition.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/RICactionDefinition.h b/asn1c_defs/all-defs/RICactionDefinition.h new file mode 100644 index 0000000..cbe4377 --- /dev/null +++ b/asn1c_defs/all-defs/RICactionDefinition.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICactionDefinition_H_ +#define _RICactionDefinition_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/RICactionID.c b/asn1c_defs/all-defs/RICactionID.c new file mode 100644 index 0000000..d3a133c --- /dev/null +++ b/asn1c_defs/all-defs/RICactionID.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_RICactionID_constr_1, RICactionID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/RICactionID.h b/asn1c_defs/all-defs/RICactionID.h new file mode 100644 index 0000000..3a7d2bb --- /dev/null +++ b/asn1c_defs/all-defs/RICactionID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICactionID_H_ +#define _RICactionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/RICactionType.c b/asn1c_defs/all-defs/RICactionType.c new file mode 100644 index 0000000..dab2ade --- /dev/null +++ b/asn1c_defs/all-defs/RICactionType.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "RICactionType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_RICactionType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RICactionType_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/RICactionType.h b/asn1c_defs/all-defs/RICactionType.h new file mode 100644 index 0000000..212c0b8 --- /dev/null +++ b/asn1c_defs/all-defs/RICactionType.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICactionType_H_ +#define _RICactionType_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/RICactions-ToBeSetup-List.c b/asn1c_defs/all-defs/RICactions-ToBeSetup-List.c new file mode 100644 index 0000000..f6819cd --- /dev/null +++ b/asn1c_defs/all-defs/RICactions-ToBeSetup-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "RICactions-ToBeSetup-List.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P0, + 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 */ + { 0, &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/asn1c_defs/all-defs/RICactions-ToBeSetup-List.h b/asn1c_defs/all-defs/RICactions-ToBeSetup-List.h new file mode 100644 index 0000000..1ba1480 --- /dev/null +++ b/asn1c_defs/all-defs/RICactions-ToBeSetup-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICactions_ToBeSetup_List_H_ +#define _RICactions_ToBeSetup_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/RICcallProcessID.c b/asn1c_defs/all-defs/RICcallProcessID.c new file mode 100644 index 0000000..c98d82a --- /dev/null +++ b/asn1c_defs/all-defs/RICcallProcessID.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/RICcallProcessID.h b/asn1c_defs/all-defs/RICcallProcessID.h new file mode 100644 index 0000000..b793634 --- /dev/null +++ b/asn1c_defs/all-defs/RICcallProcessID.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICcallProcessID_H_ +#define _RICcallProcessID_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/RICcause.c b/asn1c_defs/all-defs/RICcause.c new file mode 100644 index 0000000..c48ecc0 --- /dev/null +++ b/asn1c_defs/all-defs/RICcause.c @@ -0,0 +1,92 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "RICcause.h" + +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) */ + { 0, &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/asn1c_defs/all-defs/RICcause.h b/asn1c_defs/all-defs/RICcause.h new file mode 100644 index 0000000..0645482 --- /dev/null +++ b/asn1c_defs/all-defs/RICcause.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICcause_H_ +#define _RICcause_H_ + + +#include + +/* Including external dependencies */ +#include "CauseRadioNetwork.h" +#include "CauseTransport.h" +#include "CauseProtocol.h" +#include "CauseMisc.h" +#include "CauseRIC.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/RICcontrolAckRequest.c b/asn1c_defs/all-defs/RICcontrolAckRequest.c new file mode 100644 index 0000000..8c138cd --- /dev/null +++ b/asn1c_defs/all-defs/RICcontrolAckRequest.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "RICcontrolAckRequest.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_RICcontrolAckRequest_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RICcontrolAckRequest_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/RICcontrolAckRequest.h b/asn1c_defs/all-defs/RICcontrolAckRequest.h new file mode 100644 index 0000000..c8a03fa --- /dev/null +++ b/asn1c_defs/all-defs/RICcontrolAckRequest.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICcontrolAckRequest_H_ +#define _RICcontrolAckRequest_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/RICcontrolAcknowledge.c b/asn1c_defs/all-defs/RICcontrolAcknowledge.c new file mode 100644 index 0000000..aa3a528 --- /dev/null +++ b/asn1c_defs/all-defs/RICcontrolAcknowledge.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P8, + 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/asn1c_defs/all-defs/RICcontrolAcknowledge.h b/asn1c_defs/all-defs/RICcontrolAcknowledge.h new file mode 100644 index 0000000..b738a14 --- /dev/null +++ b/asn1c_defs/all-defs/RICcontrolAcknowledge.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICcontrolAcknowledge_H_ +#define _RICcontrolAcknowledge_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICcontrolAcknowledge */ +typedef struct RICcontrolAcknowledge { + ProtocolIE_Container_8180P8_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 diff --git a/asn1c_defs/all-defs/RICcontrolFailure.c b/asn1c_defs/all-defs/RICcontrolFailure.c new file mode 100644 index 0000000..656166a --- /dev/null +++ b/asn1c_defs/all-defs/RICcontrolFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P9, + 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/asn1c_defs/all-defs/RICcontrolFailure.h b/asn1c_defs/all-defs/RICcontrolFailure.h new file mode 100644 index 0000000..2d48e85 --- /dev/null +++ b/asn1c_defs/all-defs/RICcontrolFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICcontrolFailure_H_ +#define _RICcontrolFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICcontrolFailure */ +typedef struct RICcontrolFailure { + ProtocolIE_Container_8180P9_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 diff --git a/asn1c_defs/all-defs/RICcontrolHeader.c b/asn1c_defs/all-defs/RICcontrolHeader.c new file mode 100644 index 0000000..10190d8 --- /dev/null +++ b/asn1c_defs/all-defs/RICcontrolHeader.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/RICcontrolHeader.h b/asn1c_defs/all-defs/RICcontrolHeader.h new file mode 100644 index 0000000..59b01d1 --- /dev/null +++ b/asn1c_defs/all-defs/RICcontrolHeader.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICcontrolHeader_H_ +#define _RICcontrolHeader_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/RICcontrolMessage.c b/asn1c_defs/all-defs/RICcontrolMessage.c new file mode 100644 index 0000000..3c49649 --- /dev/null +++ b/asn1c_defs/all-defs/RICcontrolMessage.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/RICcontrolMessage.h b/asn1c_defs/all-defs/RICcontrolMessage.h new file mode 100644 index 0000000..dcec2d7 --- /dev/null +++ b/asn1c_defs/all-defs/RICcontrolMessage.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICcontrolMessage_H_ +#define _RICcontrolMessage_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/RICcontrolRequest.c b/asn1c_defs/all-defs/RICcontrolRequest.c new file mode 100644 index 0000000..aa3a96f --- /dev/null +++ b/asn1c_defs/all-defs/RICcontrolRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P7, + 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/asn1c_defs/all-defs/RICcontrolRequest.h b/asn1c_defs/all-defs/RICcontrolRequest.h new file mode 100644 index 0000000..d799619 --- /dev/null +++ b/asn1c_defs/all-defs/RICcontrolRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICcontrolRequest_H_ +#define _RICcontrolRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICcontrolRequest */ +typedef struct RICcontrolRequest { + ProtocolIE_Container_8180P7_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 diff --git a/asn1c_defs/all-defs/RICcontrolStatus.c b/asn1c_defs/all-defs/RICcontrolStatus.c new file mode 100644 index 0000000..6576a45 --- /dev/null +++ b/asn1c_defs/all-defs/RICcontrolStatus.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "RICcontrolStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_RICcontrolStatus_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RICcontrolStatus_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/RICcontrolStatus.h b/asn1c_defs/all-defs/RICcontrolStatus.h new file mode 100644 index 0000000..d4001fc --- /dev/null +++ b/asn1c_defs/all-defs/RICcontrolStatus.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICcontrolStatus_H_ +#define _RICcontrolStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/RICeventTriggerDefinition.c b/asn1c_defs/all-defs/RICeventTriggerDefinition.c new file mode 100644 index 0000000..07de1f5 --- /dev/null +++ b/asn1c_defs/all-defs/RICeventTriggerDefinition.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/RICeventTriggerDefinition.h b/asn1c_defs/all-defs/RICeventTriggerDefinition.h new file mode 100644 index 0000000..45154b7 --- /dev/null +++ b/asn1c_defs/all-defs/RICeventTriggerDefinition.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICeventTriggerDefinition_H_ +#define _RICeventTriggerDefinition_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/RICindication.c b/asn1c_defs/all-defs/RICindication.c new file mode 100644 index 0000000..dac8e8f --- /dev/null +++ b/asn1c_defs/all-defs/RICindication.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P6, + 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/asn1c_defs/all-defs/RICindication.h b/asn1c_defs/all-defs/RICindication.h new file mode 100644 index 0000000..11db8d2 --- /dev/null +++ b/asn1c_defs/all-defs/RICindication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICindication_H_ +#define _RICindication_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICindication */ +typedef struct RICindication { + ProtocolIE_Container_8180P6_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 diff --git a/asn1c_defs/all-defs/RICindicationHeader.c b/asn1c_defs/all-defs/RICindicationHeader.c new file mode 100644 index 0000000..c964f09 --- /dev/null +++ b/asn1c_defs/all-defs/RICindicationHeader.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/RICindicationHeader.h b/asn1c_defs/all-defs/RICindicationHeader.h new file mode 100644 index 0000000..761e8c2 --- /dev/null +++ b/asn1c_defs/all-defs/RICindicationHeader.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICindicationHeader_H_ +#define _RICindicationHeader_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/RICindicationMessage.c b/asn1c_defs/all-defs/RICindicationMessage.c new file mode 100644 index 0000000..85a2db7 --- /dev/null +++ b/asn1c_defs/all-defs/RICindicationMessage.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/RICindicationMessage.h b/asn1c_defs/all-defs/RICindicationMessage.h new file mode 100644 index 0000000..f46c8bb --- /dev/null +++ b/asn1c_defs/all-defs/RICindicationMessage.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICindicationMessage_H_ +#define _RICindicationMessage_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/RICindicationSN.c b/asn1c_defs/all-defs/RICindicationSN.c new file mode 100644 index 0000000..e3a21a5 --- /dev/null +++ b/asn1c_defs/all-defs/RICindicationSN.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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 */ + { 0, &asn_PER_type_RICindicationSN_constr_1, RICindicationSN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/RICindicationSN.h b/asn1c_defs/all-defs/RICindicationSN.h new file mode 100644 index 0000000..8c29904 --- /dev/null +++ b/asn1c_defs/all-defs/RICindicationSN.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICindicationSN_H_ +#define _RICindicationSN_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/RICindicationType.c b/asn1c_defs/all-defs/RICindicationType.c new file mode 100644 index 0000000..5c7b79d --- /dev/null +++ b/asn1c_defs/all-defs/RICindicationType.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "RICindicationType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_RICindicationType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RICindicationType_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/RICindicationType.h b/asn1c_defs/all-defs/RICindicationType.h new file mode 100644 index 0000000..3d13a88 --- /dev/null +++ b/asn1c_defs/all-defs/RICindicationType.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICindicationType_H_ +#define _RICindicationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/RICrequestID.c b/asn1c_defs/all-defs/RICrequestID.c new file mode 100644 index 0000000..7ac75fd --- /dev/null +++ b/asn1c_defs/all-defs/RICrequestID.c @@ -0,0 +1,120 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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, + { 0, &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, + { 0, &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/asn1c_defs/all-defs/RICrequestID.h b/asn1c_defs/all-defs/RICrequestID.h new file mode 100644 index 0000000..1e69caf --- /dev/null +++ b/asn1c_defs/all-defs/RICrequestID.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICrequestID_H_ +#define _RICrequestID_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/RICserviceQuery.c b/asn1c_defs/all-defs/RICserviceQuery.c new file mode 100644 index 0000000..14cfb73 --- /dev/null +++ b/asn1c_defs/all-defs/RICserviceQuery.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P13, + 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/asn1c_defs/all-defs/RICserviceQuery.h b/asn1c_defs/all-defs/RICserviceQuery.h new file mode 100644 index 0000000..47a7dbd --- /dev/null +++ b/asn1c_defs/all-defs/RICserviceQuery.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICserviceQuery_H_ +#define _RICserviceQuery_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICserviceQuery */ +typedef struct RICserviceQuery { + ProtocolIE_Container_8180P13_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 diff --git a/asn1c_defs/all-defs/RICserviceUpdate.c b/asn1c_defs/all-defs/RICserviceUpdate.c new file mode 100644 index 0000000..9732a61 --- /dev/null +++ b/asn1c_defs/all-defs/RICserviceUpdate.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P10, + 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/asn1c_defs/all-defs/RICserviceUpdate.h b/asn1c_defs/all-defs/RICserviceUpdate.h new file mode 100644 index 0000000..329665f --- /dev/null +++ b/asn1c_defs/all-defs/RICserviceUpdate.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICserviceUpdate_H_ +#define _RICserviceUpdate_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICserviceUpdate */ +typedef struct RICserviceUpdate { + ProtocolIE_Container_8180P10_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 diff --git a/asn1c_defs/all-defs/RICserviceUpdateAcknowledge.c b/asn1c_defs/all-defs/RICserviceUpdateAcknowledge.c new file mode 100644 index 0000000..3e905fa --- /dev/null +++ b/asn1c_defs/all-defs/RICserviceUpdateAcknowledge.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P11, + 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/asn1c_defs/all-defs/RICserviceUpdateAcknowledge.h b/asn1c_defs/all-defs/RICserviceUpdateAcknowledge.h new file mode 100644 index 0000000..34b6019 --- /dev/null +++ b/asn1c_defs/all-defs/RICserviceUpdateAcknowledge.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICserviceUpdateAcknowledge_H_ +#define _RICserviceUpdateAcknowledge_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICserviceUpdateAcknowledge */ +typedef struct RICserviceUpdateAcknowledge { + ProtocolIE_Container_8180P11_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 diff --git a/asn1c_defs/all-defs/RICserviceUpdateFailure.c b/asn1c_defs/all-defs/RICserviceUpdateFailure.c new file mode 100644 index 0000000..a2d5b5d --- /dev/null +++ b/asn1c_defs/all-defs/RICserviceUpdateFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P12, + 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/asn1c_defs/all-defs/RICserviceUpdateFailure.h b/asn1c_defs/all-defs/RICserviceUpdateFailure.h new file mode 100644 index 0000000..833889a --- /dev/null +++ b/asn1c_defs/all-defs/RICserviceUpdateFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICserviceUpdateFailure_H_ +#define _RICserviceUpdateFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICserviceUpdateFailure */ +typedef struct RICserviceUpdateFailure { + ProtocolIE_Container_8180P12_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 diff --git a/asn1c_defs/all-defs/RICsubscription.c b/asn1c_defs/all-defs/RICsubscription.c new file mode 100644 index 0000000..2f173a4 --- /dev/null +++ b/asn1c_defs/all-defs/RICsubscription.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/RICsubscription.h b/asn1c_defs/all-defs/RICsubscription.h new file mode 100644 index 0000000..dca089a --- /dev/null +++ b/asn1c_defs/all-defs/RICsubscription.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICsubscription_H_ +#define _RICsubscription_H_ + + +#include + +/* Including external dependencies */ +#include "RICeventTriggerDefinition.h" +#include "RICactions-ToBeSetup-List.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/RICsubscriptionDeleteFailure.c b/asn1c_defs/all-defs/RICsubscriptionDeleteFailure.c new file mode 100644 index 0000000..e769905 --- /dev/null +++ b/asn1c_defs/all-defs/RICsubscriptionDeleteFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P5, + 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/asn1c_defs/all-defs/RICsubscriptionDeleteFailure.h b/asn1c_defs/all-defs/RICsubscriptionDeleteFailure.h new file mode 100644 index 0000000..4af0953 --- /dev/null +++ b/asn1c_defs/all-defs/RICsubscriptionDeleteFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICsubscriptionDeleteFailure_H_ +#define _RICsubscriptionDeleteFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICsubscriptionDeleteFailure */ +typedef struct RICsubscriptionDeleteFailure { + ProtocolIE_Container_8180P5_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 diff --git a/asn1c_defs/all-defs/RICsubscriptionDeleteRequest.c b/asn1c_defs/all-defs/RICsubscriptionDeleteRequest.c new file mode 100644 index 0000000..19e03c9 --- /dev/null +++ b/asn1c_defs/all-defs/RICsubscriptionDeleteRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P3, + 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/asn1c_defs/all-defs/RICsubscriptionDeleteRequest.h b/asn1c_defs/all-defs/RICsubscriptionDeleteRequest.h new file mode 100644 index 0000000..1ea50ae --- /dev/null +++ b/asn1c_defs/all-defs/RICsubscriptionDeleteRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICsubscriptionDeleteRequest_H_ +#define _RICsubscriptionDeleteRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICsubscriptionDeleteRequest */ +typedef struct RICsubscriptionDeleteRequest { + ProtocolIE_Container_8180P3_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 diff --git a/asn1c_defs/all-defs/RICsubscriptionDeleteResponse.c b/asn1c_defs/all-defs/RICsubscriptionDeleteResponse.c new file mode 100644 index 0000000..dba6ac5 --- /dev/null +++ b/asn1c_defs/all-defs/RICsubscriptionDeleteResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P4, + 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/asn1c_defs/all-defs/RICsubscriptionDeleteResponse.h b/asn1c_defs/all-defs/RICsubscriptionDeleteResponse.h new file mode 100644 index 0000000..4d726a4 --- /dev/null +++ b/asn1c_defs/all-defs/RICsubscriptionDeleteResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICsubscriptionDeleteResponse_H_ +#define _RICsubscriptionDeleteResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICsubscriptionDeleteResponse */ +typedef struct RICsubscriptionDeleteResponse { + ProtocolIE_Container_8180P4_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 diff --git a/asn1c_defs/all-defs/RICsubscriptionFailure.c b/asn1c_defs/all-defs/RICsubscriptionFailure.c new file mode 100644 index 0000000..8702fb3 --- /dev/null +++ b/asn1c_defs/all-defs/RICsubscriptionFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P2, + 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/asn1c_defs/all-defs/RICsubscriptionFailure.h b/asn1c_defs/all-defs/RICsubscriptionFailure.h new file mode 100644 index 0000000..4fc21e5 --- /dev/null +++ b/asn1c_defs/all-defs/RICsubscriptionFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICsubscriptionFailure_H_ +#define _RICsubscriptionFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICsubscriptionFailure */ +typedef struct RICsubscriptionFailure { + ProtocolIE_Container_8180P2_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 diff --git a/asn1c_defs/all-defs/RICsubscriptionRequest.c b/asn1c_defs/all-defs/RICsubscriptionRequest.c new file mode 100644 index 0000000..a0128ec --- /dev/null +++ b/asn1c_defs/all-defs/RICsubscriptionRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P0, + 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/asn1c_defs/all-defs/RICsubscriptionRequest.h b/asn1c_defs/all-defs/RICsubscriptionRequest.h new file mode 100644 index 0000000..a4bde2c --- /dev/null +++ b/asn1c_defs/all-defs/RICsubscriptionRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICsubscriptionRequest_H_ +#define _RICsubscriptionRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICsubscriptionRequest */ +typedef struct RICsubscriptionRequest { + ProtocolIE_Container_8180P0_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 diff --git a/asn1c_defs/all-defs/RICsubscriptionResponse.c b/asn1c_defs/all-defs/RICsubscriptionResponse.c new file mode 100644 index 0000000..3a45fda --- /dev/null +++ b/asn1c_defs/all-defs/RICsubscriptionResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P1, + 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/asn1c_defs/all-defs/RICsubscriptionResponse.h b/asn1c_defs/all-defs/RICsubscriptionResponse.h new file mode 100644 index 0000000..f95e49e --- /dev/null +++ b/asn1c_defs/all-defs/RICsubscriptionResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICsubscriptionResponse_H_ +#define _RICsubscriptionResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICsubscriptionResponse */ +typedef struct RICsubscriptionResponse { + ProtocolIE_Container_8180P1_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 diff --git a/asn1c_defs/all-defs/RICsubsequentAction.c b/asn1c_defs/all-defs/RICsubsequentAction.c new file mode 100644 index 0000000..feb75a9 --- /dev/null +++ b/asn1c_defs/all-defs/RICsubsequentAction.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/RICsubsequentAction.h b/asn1c_defs/all-defs/RICsubsequentAction.h new file mode 100644 index 0000000..bb2fb29 --- /dev/null +++ b/asn1c_defs/all-defs/RICsubsequentAction.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICsubsequentAction_H_ +#define _RICsubsequentAction_H_ + + +#include + +/* Including external dependencies */ +#include "RICsubsequentActionType.h" +#include "RICtimeToWait.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/RICsubsequentActionType.c b/asn1c_defs/all-defs/RICsubsequentActionType.c new file mode 100644 index 0000000..84770db --- /dev/null +++ b/asn1c_defs/all-defs/RICsubsequentActionType.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "RICsubsequentActionType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_RICsubsequentActionType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RICsubsequentActionType_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/RICsubsequentActionType.h b/asn1c_defs/all-defs/RICsubsequentActionType.h new file mode 100644 index 0000000..1520152 --- /dev/null +++ b/asn1c_defs/all-defs/RICsubsequentActionType.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICsubsequentActionType_H_ +#define _RICsubsequentActionType_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/RICtimeToWait.c b/asn1c_defs/all-defs/RICtimeToWait.c new file mode 100644 index 0000000..23647a9 --- /dev/null +++ b/asn1c_defs/all-defs/RICtimeToWait.c @@ -0,0 +1,87 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "RICtimeToWait.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_RICtimeToWait_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RICtimeToWait_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/RICtimeToWait.h b/asn1c_defs/all-defs/RICtimeToWait.h new file mode 100644 index 0000000..2039fab --- /dev/null +++ b/asn1c_defs/all-defs/RICtimeToWait.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RICtimeToWait_H_ +#define _RICtimeToWait_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/RLC-Status.c b/asn1c_defs/all-defs/RLC-Status.c new file mode 100644 index 0000000..4350cb2 --- /dev/null +++ b/asn1c_defs/all-defs/RLC-Status.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P186, + 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/asn1c_defs/all-defs/RLC-Status.h b/asn1c_defs/all-defs/RLC-Status.h new file mode 100644 index 0000000..d5cd9fb --- /dev/null +++ b/asn1c_defs/all-defs/RLC-Status.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RLC_Status_H_ +#define _RLC_Status_H_ + + +#include + +/* Including external dependencies */ +#include "Reestablishment-Indication.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/RLCMode.c b/asn1c_defs/all-defs/RLCMode.c new file mode 100644 index 0000000..e07ba04 --- /dev/null +++ b/asn1c_defs/all-defs/RLCMode.c @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "RLCMode.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_RLCMode_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RLCMode_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/RLCMode.h b/asn1c_defs/all-defs/RLCMode.h new file mode 100644 index 0000000..792c44b --- /dev/null +++ b/asn1c_defs/all-defs/RLCMode.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RLCMode_H_ +#define _RLCMode_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/RLFIndication.c b/asn1c_defs/all-defs/RLFIndication.c new file mode 100644 index 0000000..507ea0f --- /dev/null +++ b/asn1c_defs/all-defs/RLFIndication.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P38, + 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/asn1c_defs/all-defs/RLFIndication.h b/asn1c_defs/all-defs/RLFIndication.h new file mode 100644 index 0000000..338debf --- /dev/null +++ b/asn1c_defs/all-defs/RLFIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RLFIndication_H_ +#define _RLFIndication_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RLFIndication */ +typedef struct RLFIndication { + ProtocolIE_Container_8180P38_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 diff --git a/asn1c_defs/all-defs/RNL-Header.c b/asn1c_defs/all-defs/RNL-Header.c new file mode 100644 index 0000000..88d5ba0 --- /dev/null +++ b/asn1c_defs/all-defs/RNL-Header.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P16, + 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/asn1c_defs/all-defs/RNL-Header.h b/asn1c_defs/all-defs/RNL-Header.h new file mode 100644 index 0000000..f7f2679 --- /dev/null +++ b/asn1c_defs/all-defs/RNL-Header.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RNL_Header_H_ +#define _RNL_Header_H_ + + +#include + +/* Including external dependencies */ +#include "GlobalENB-ID.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/RNTP-Threshold.c b/asn1c_defs/all-defs/RNTP-Threshold.c new file mode 100644 index 0000000..5c75142 --- /dev/null +++ b/asn1c_defs/all-defs/RNTP-Threshold.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "RNTP-Threshold.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_RNTP_Threshold_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RNTP_Threshold_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/RNTP-Threshold.h b/asn1c_defs/all-defs/RNTP-Threshold.h new file mode 100644 index 0000000..e366f56 --- /dev/null +++ b/asn1c_defs/all-defs/RNTP-Threshold.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RNTP_Threshold_H_ +#define _RNTP_Threshold_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/RRC-Config-Ind.c b/asn1c_defs/all-defs/RRC-Config-Ind.c new file mode 100644 index 0000000..6200f9f --- /dev/null +++ b/asn1c_defs/all-defs/RRC-Config-Ind.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "RRC-Config-Ind.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &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/asn1c_defs/all-defs/RRC-Config-Ind.h b/asn1c_defs/all-defs/RRC-Config-Ind.h new file mode 100644 index 0000000..66a2624 --- /dev/null +++ b/asn1c_defs/all-defs/RRC-Config-Ind.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RRC_Config_Ind_H_ +#define _RRC_Config_Ind_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/RRC-Context.c b/asn1c_defs/all-defs/RRC-Context.c new file mode 100644 index 0000000..eda6c6f --- /dev/null +++ b/asn1c_defs/all-defs/RRC-Context.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/RRC-Context.h b/asn1c_defs/all-defs/RRC-Context.h new file mode 100644 index 0000000..9c33fb5 --- /dev/null +++ b/asn1c_defs/all-defs/RRC-Context.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RRC_Context_H_ +#define _RRC_Context_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/RRCConnReestabIndicator.c b/asn1c_defs/all-defs/RRCConnReestabIndicator.c new file mode 100644 index 0000000..c2fc606 --- /dev/null +++ b/asn1c_defs/all-defs/RRCConnReestabIndicator.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "RRCConnReestabIndicator.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_RRCConnReestabIndicator_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RRCConnReestabIndicator_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/RRCConnReestabIndicator.h b/asn1c_defs/all-defs/RRCConnReestabIndicator.h new file mode 100644 index 0000000..0bb3a6f --- /dev/null +++ b/asn1c_defs/all-defs/RRCConnReestabIndicator.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RRCConnReestabIndicator_H_ +#define _RRCConnReestabIndicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/RRCConnSetupIndicator.c b/asn1c_defs/all-defs/RRCConnSetupIndicator.c new file mode 100644 index 0000000..9871ad2 --- /dev/null +++ b/asn1c_defs/all-defs/RRCConnSetupIndicator.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "RRCConnSetupIndicator.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_RRCConnSetupIndicator_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RRCConnSetupIndicator_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/RRCConnSetupIndicator.h b/asn1c_defs/all-defs/RRCConnSetupIndicator.h new file mode 100644 index 0000000..d704f9d --- /dev/null +++ b/asn1c_defs/all-defs/RRCConnSetupIndicator.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RRCConnSetupIndicator_H_ +#define _RRCConnSetupIndicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/RRCContainer.c b/asn1c_defs/all-defs/RRCContainer.c new file mode 100644 index 0000000..0b9aa1c --- /dev/null +++ b/asn1c_defs/all-defs/RRCContainer.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/RRCContainer.h b/asn1c_defs/all-defs/RRCContainer.h new file mode 100644 index 0000000..77ad410 --- /dev/null +++ b/asn1c_defs/all-defs/RRCContainer.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RRCContainer_H_ +#define _RRCContainer_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/RRCTransfer.c b/asn1c_defs/all-defs/RRCTransfer.c new file mode 100644 index 0000000..0c628f5 --- /dev/null +++ b/asn1c_defs/all-defs/RRCTransfer.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P82, + 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/asn1c_defs/all-defs/RRCTransfer.h b/asn1c_defs/all-defs/RRCTransfer.h new file mode 100644 index 0000000..35f3934 --- /dev/null +++ b/asn1c_defs/all-defs/RRCTransfer.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RRCTransfer_H_ +#define _RRCTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RRCTransfer */ +typedef struct RRCTransfer { + ProtocolIE_Container_8180P82_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 diff --git a/asn1c_defs/all-defs/RSRPMRList.c b/asn1c_defs/all-defs/RSRPMRList.c new file mode 100644 index 0000000..bbbca70 --- /dev/null +++ b/asn1c_defs/all-defs/RSRPMRList.c @@ -0,0 +1,104 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "RSRPMRList.h" + +#include "ProtocolExtensionContainer.h" +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_8231P188, + 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 */ + { 0, &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/asn1c_defs/all-defs/RSRPMRList.h b/asn1c_defs/all-defs/RSRPMRList.h new file mode 100644 index 0000000..86e588e --- /dev/null +++ b/asn1c_defs/all-defs/RSRPMRList.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RSRPMRList_H_ +#define _RSRPMRList_H_ + + +#include + +/* Including external dependencies */ +#include +#include "RSRPMeasurementResult.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/RSRPMeasurementResult.c b/asn1c_defs/all-defs/RSRPMeasurementResult.c new file mode 100644 index 0000000..da0068b --- /dev/null +++ b/asn1c_defs/all-defs/RSRPMeasurementResult.c @@ -0,0 +1,144 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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 */ +}; +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, + { 0, &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_8231P187, + 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 */ + { 0, &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/asn1c_defs/all-defs/RSRPMeasurementResult.h b/asn1c_defs/all-defs/RSRPMeasurementResult.h new file mode 100644 index 0000000..32125cb --- /dev/null +++ b/asn1c_defs/all-defs/RSRPMeasurementResult.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RSRPMeasurementResult_H_ +#define _RSRPMeasurementResult_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ECGI.h" +#include +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/RadioResourceStatus.c b/asn1c_defs/all-defs/RadioResourceStatus.c new file mode 100644 index 0000000..93a5d2f --- /dev/null +++ b/asn1c_defs/all-defs/RadioResourceStatus.c @@ -0,0 +1,113 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P183, + 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/asn1c_defs/all-defs/RadioResourceStatus.h b/asn1c_defs/all-defs/RadioResourceStatus.h new file mode 100644 index 0000000..d2238ba --- /dev/null +++ b/asn1c_defs/all-defs/RadioResourceStatus.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RadioResourceStatus_H_ +#define _RadioResourceStatus_H_ + + +#include + +/* 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 + +#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 diff --git a/asn1c_defs/all-defs/RadioframeAllocationOffset.c b/asn1c_defs/all-defs/RadioframeAllocationOffset.c new file mode 100644 index 0000000..bb773c1 --- /dev/null +++ b/asn1c_defs/all-defs/RadioframeAllocationOffset.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_RadioframeAllocationOffset_constr_1, RadioframeAllocationOffset_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/RadioframeAllocationOffset.h b/asn1c_defs/all-defs/RadioframeAllocationOffset.h new file mode 100644 index 0000000..6230e7b --- /dev/null +++ b/asn1c_defs/all-defs/RadioframeAllocationOffset.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RadioframeAllocationOffset_H_ +#define _RadioframeAllocationOffset_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/RadioframeAllocationPeriod.c b/asn1c_defs/all-defs/RadioframeAllocationPeriod.c new file mode 100644 index 0000000..93ab256 --- /dev/null +++ b/asn1c_defs/all-defs/RadioframeAllocationPeriod.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "RadioframeAllocationPeriod.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_RadioframeAllocationPeriod_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RadioframeAllocationPeriod_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/RadioframeAllocationPeriod.h b/asn1c_defs/all-defs/RadioframeAllocationPeriod.h new file mode 100644 index 0000000..d9af2e0 --- /dev/null +++ b/asn1c_defs/all-defs/RadioframeAllocationPeriod.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RadioframeAllocationPeriod_H_ +#define _RadioframeAllocationPeriod_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/ReceiveStatusOfULPDCPSDUsExtended.c b/asn1c_defs/all-defs/ReceiveStatusOfULPDCPSDUsExtended.c new file mode 100644 index 0000000..f542330 --- /dev/null +++ b/asn1c_defs/all-defs/ReceiveStatusOfULPDCPSDUsExtended.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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 */ + { 0, &asn_PER_type_ReceiveStatusOfULPDCPSDUsExtended_constr_1, ReceiveStatusOfULPDCPSDUsExtended_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/ReceiveStatusOfULPDCPSDUsExtended.h b/asn1c_defs/all-defs/ReceiveStatusOfULPDCPSDUsExtended.h new file mode 100644 index 0000000..34378c7 --- /dev/null +++ b/asn1c_defs/all-defs/ReceiveStatusOfULPDCPSDUsExtended.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ReceiveStatusOfULPDCPSDUsExtended_H_ +#define _ReceiveStatusOfULPDCPSDUsExtended_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.c b/asn1c_defs/all-defs/ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.c new file mode 100644 index 0000000..aec874c --- /dev/null +++ b/asn1c_defs/all-defs/ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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 */ + { 0, &asn_PER_type_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_constr_1, ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.h b/asn1c_defs/all-defs/ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.h new file mode 100644 index 0000000..e0ec8b6 --- /dev/null +++ b/asn1c_defs/all-defs/ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_H_ +#define _ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/ReceiveStatusofULPDCPSDUs.c b/asn1c_defs/all-defs/ReceiveStatusofULPDCPSDUs.c new file mode 100644 index 0000000..7d56d4d --- /dev/null +++ b/asn1c_defs/all-defs/ReceiveStatusofULPDCPSDUs.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_ReceiveStatusofULPDCPSDUs_constr_1, ReceiveStatusofULPDCPSDUs_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/ReceiveStatusofULPDCPSDUs.h b/asn1c_defs/all-defs/ReceiveStatusofULPDCPSDUs.h new file mode 100644 index 0000000..bc751aa --- /dev/null +++ b/asn1c_defs/all-defs/ReceiveStatusofULPDCPSDUs.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ReceiveStatusofULPDCPSDUs_H_ +#define _ReceiveStatusofULPDCPSDUs_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/Reestablishment-Indication.c b/asn1c_defs/all-defs/Reestablishment-Indication.c new file mode 100644 index 0000000..4f6d1ec --- /dev/null +++ b/asn1c_defs/all-defs/Reestablishment-Indication.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "Reestablishment-Indication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_Reestablishment_Indication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Reestablishment_Indication_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/Reestablishment-Indication.h b/asn1c_defs/all-defs/Reestablishment-Indication.h new file mode 100644 index 0000000..b64c5ae --- /dev/null +++ b/asn1c_defs/all-defs/Reestablishment-Indication.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _Reestablishment_Indication_H_ +#define _Reestablishment_Indication_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/Registration-Request.c b/asn1c_defs/all-defs/Registration-Request.c new file mode 100644 index 0000000..c0d0dd9 --- /dev/null +++ b/asn1c_defs/all-defs/Registration-Request.c @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "Registration-Request.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_Registration_Request_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Registration_Request_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/Registration-Request.h b/asn1c_defs/all-defs/Registration-Request.h new file mode 100644 index 0000000..5c38c8e --- /dev/null +++ b/asn1c_defs/all-defs/Registration-Request.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _Registration_Request_H_ +#define _Registration_Request_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/RelativeNarrowbandTxPower.c b/asn1c_defs/all-defs/RelativeNarrowbandTxPower.c new file mode 100644 index 0000000..5f08398 --- /dev/null +++ b/asn1c_defs/all-defs/RelativeNarrowbandTxPower.c @@ -0,0 +1,249 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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_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_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 */ + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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_8231P184, + 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/asn1c_defs/all-defs/RelativeNarrowbandTxPower.h b/asn1c_defs/all-defs/RelativeNarrowbandTxPower.h new file mode 100644 index 0000000..3e0c6b7 --- /dev/null +++ b/asn1c_defs/all-defs/RelativeNarrowbandTxPower.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RelativeNarrowbandTxPower_H_ +#define _RelativeNarrowbandTxPower_H_ + + +#include + +/* Including external dependencies */ +#include +#include "RNTP-Threshold.h" +#include +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ReplacingCellsList-Item.c b/asn1c_defs/all-defs/ReplacingCellsList-Item.c new file mode 100644 index 0000000..7555935 --- /dev/null +++ b/asn1c_defs/all-defs/ReplacingCellsList-Item.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/ReplacingCellsList-Item.h b/asn1c_defs/all-defs/ReplacingCellsList-Item.h new file mode 100644 index 0000000..1130be4 --- /dev/null +++ b/asn1c_defs/all-defs/ReplacingCellsList-Item.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ReplacingCellsList_Item_H_ +#define _ReplacingCellsList_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ECGI.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/ReplacingCellsList.c b/asn1c_defs/all-defs/ReplacingCellsList.c new file mode 100644 index 0000000..8778fd8 --- /dev/null +++ b/asn1c_defs/all-defs/ReplacingCellsList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ReplacingCellsList.h" + +#include "ReplacingCellsList-Item.h" +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 */ + { 0, &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/asn1c_defs/all-defs/ReplacingCellsList.h b/asn1c_defs/all-defs/ReplacingCellsList.h new file mode 100644 index 0000000..0c6efde --- /dev/null +++ b/asn1c_defs/all-defs/ReplacingCellsList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ReplacingCellsList_H_ +#define _ReplacingCellsList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ReportAmountMDT.c b/asn1c_defs/all-defs/ReportAmountMDT.c new file mode 100644 index 0000000..44714e0 --- /dev/null +++ b/asn1c_defs/all-defs/ReportAmountMDT.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ReportAmountMDT.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_ReportAmountMDT_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ReportAmountMDT_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/ReportAmountMDT.h b/asn1c_defs/all-defs/ReportAmountMDT.h new file mode 100644 index 0000000..2ffd7a9 --- /dev/null +++ b/asn1c_defs/all-defs/ReportAmountMDT.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ReportAmountMDT_H_ +#define _ReportAmountMDT_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/ReportArea.c b/asn1c_defs/all-defs/ReportArea.c new file mode 100644 index 0000000..0e0d44c --- /dev/null +++ b/asn1c_defs/all-defs/ReportArea.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ReportArea.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_ReportArea_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ReportArea_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/ReportArea.h b/asn1c_defs/all-defs/ReportArea.h new file mode 100644 index 0000000..c5f13db --- /dev/null +++ b/asn1c_defs/all-defs/ReportArea.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ReportArea_H_ +#define _ReportArea_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/ReportCharacteristics.c b/asn1c_defs/all-defs/ReportCharacteristics.c new file mode 100644 index 0000000..b85523a --- /dev/null +++ b/asn1c_defs/all-defs/ReportCharacteristics.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_ReportCharacteristics_constr_1, ReportCharacteristics_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/ReportCharacteristics.h b/asn1c_defs/all-defs/ReportCharacteristics.h new file mode 100644 index 0000000..ca76a66 --- /dev/null +++ b/asn1c_defs/all-defs/ReportCharacteristics.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ReportCharacteristics_H_ +#define _ReportCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/ReportIntervalMDT.c b/asn1c_defs/all-defs/ReportIntervalMDT.c new file mode 100644 index 0000000..ddeb6f0 --- /dev/null +++ b/asn1c_defs/all-defs/ReportIntervalMDT.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ReportIntervalMDT.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_ReportIntervalMDT_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ReportIntervalMDT_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/ReportIntervalMDT.h b/asn1c_defs/all-defs/ReportIntervalMDT.h new file mode 100644 index 0000000..1b60108 --- /dev/null +++ b/asn1c_defs/all-defs/ReportIntervalMDT.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ReportIntervalMDT_H_ +#define _ReportIntervalMDT_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/ReportingPeriodicity.c b/asn1c_defs/all-defs/ReportingPeriodicity.c new file mode 100644 index 0000000..3c6bb3a --- /dev/null +++ b/asn1c_defs/all-defs/ReportingPeriodicity.c @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ReportingPeriodicity.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_ReportingPeriodicity_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ReportingPeriodicity_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/ReportingPeriodicity.h b/asn1c_defs/all-defs/ReportingPeriodicity.h new file mode 100644 index 0000000..f4c9265 --- /dev/null +++ b/asn1c_defs/all-defs/ReportingPeriodicity.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ReportingPeriodicity_H_ +#define _ReportingPeriodicity_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/ReportingPeriodicityCSIR.c b/asn1c_defs/all-defs/ReportingPeriodicityCSIR.c new file mode 100644 index 0000000..96e2d0f --- /dev/null +++ b/asn1c_defs/all-defs/ReportingPeriodicityCSIR.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ReportingPeriodicityCSIR.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_ReportingPeriodicityCSIR_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ReportingPeriodicityCSIR_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/ReportingPeriodicityCSIR.h b/asn1c_defs/all-defs/ReportingPeriodicityCSIR.h new file mode 100644 index 0000000..b2d5076 --- /dev/null +++ b/asn1c_defs/all-defs/ReportingPeriodicityCSIR.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ReportingPeriodicityCSIR_H_ +#define _ReportingPeriodicityCSIR_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/ReportingPeriodicityRSRPMR.c b/asn1c_defs/all-defs/ReportingPeriodicityRSRPMR.c new file mode 100644 index 0000000..56f5e88 --- /dev/null +++ b/asn1c_defs/all-defs/ReportingPeriodicityRSRPMR.c @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ReportingPeriodicityRSRPMR.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_ReportingPeriodicityRSRPMR_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ReportingPeriodicityRSRPMR_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/ReportingPeriodicityRSRPMR.h b/asn1c_defs/all-defs/ReportingPeriodicityRSRPMR.h new file mode 100644 index 0000000..99fe724 --- /dev/null +++ b/asn1c_defs/all-defs/ReportingPeriodicityRSRPMR.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ReportingPeriodicityRSRPMR_H_ +#define _ReportingPeriodicityRSRPMR_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/ReservedSubframePattern.c b/asn1c_defs/all-defs/ReservedSubframePattern.c new file mode 100644 index 0000000..693d5d5 --- /dev/null +++ b/asn1c_defs/all-defs/ReservedSubframePattern.c @@ -0,0 +1,149 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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, + { 0, &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, + { 0, &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_8231P185, + 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/asn1c_defs/all-defs/ReservedSubframePattern.h b/asn1c_defs/all-defs/ReservedSubframePattern.h new file mode 100644 index 0000000..a119977 --- /dev/null +++ b/asn1c_defs/all-defs/ReservedSubframePattern.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ReservedSubframePattern_H_ +#define _ReservedSubframePattern_H_ + + +#include + +/* Including external dependencies */ +#include "SubframeType.h" +#include +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ResetRequest.c b/asn1c_defs/all-defs/ResetRequest.c new file mode 100644 index 0000000..80d3dd2 --- /dev/null +++ b/asn1c_defs/all-defs/ResetRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P22, + 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/asn1c_defs/all-defs/ResetRequest.h b/asn1c_defs/all-defs/ResetRequest.h new file mode 100644 index 0000000..a7697fb --- /dev/null +++ b/asn1c_defs/all-defs/ResetRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ResetRequest_H_ +#define _ResetRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ResetRequest */ +typedef struct ResetRequest { + ProtocolIE_Container_8180P22_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 diff --git a/asn1c_defs/all-defs/ResetResponse.c b/asn1c_defs/all-defs/ResetResponse.c new file mode 100644 index 0000000..6d6f666 --- /dev/null +++ b/asn1c_defs/all-defs/ResetResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P23, + 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/asn1c_defs/all-defs/ResetResponse.h b/asn1c_defs/all-defs/ResetResponse.h new file mode 100644 index 0000000..3bd3d28 --- /dev/null +++ b/asn1c_defs/all-defs/ResetResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ResetResponse_H_ +#define _ResetResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ResetResponse */ +typedef struct ResetResponse { + ProtocolIE_Container_8180P23_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 diff --git a/asn1c_defs/all-defs/ResourceStatusFailure.c b/asn1c_defs/all-defs/ResourceStatusFailure.c new file mode 100644 index 0000000..a269127 --- /dev/null +++ b/asn1c_defs/all-defs/ResourceStatusFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P33, + 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/asn1c_defs/all-defs/ResourceStatusFailure.h b/asn1c_defs/all-defs/ResourceStatusFailure.h new file mode 100644 index 0000000..b4bc2ee --- /dev/null +++ b/asn1c_defs/all-defs/ResourceStatusFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ResourceStatusFailure_H_ +#define _ResourceStatusFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ResourceStatusFailure */ +typedef struct ResourceStatusFailure { + ProtocolIE_Container_8180P33_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 diff --git a/asn1c_defs/all-defs/ResourceStatusRequest.c b/asn1c_defs/all-defs/ResourceStatusRequest.c new file mode 100644 index 0000000..87fe229 --- /dev/null +++ b/asn1c_defs/all-defs/ResourceStatusRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P31, + 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/asn1c_defs/all-defs/ResourceStatusRequest.h b/asn1c_defs/all-defs/ResourceStatusRequest.h new file mode 100644 index 0000000..2962cd7 --- /dev/null +++ b/asn1c_defs/all-defs/ResourceStatusRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ResourceStatusRequest_H_ +#define _ResourceStatusRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ResourceStatusRequest */ +typedef struct ResourceStatusRequest { + ProtocolIE_Container_8180P31_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 diff --git a/asn1c_defs/all-defs/ResourceStatusResponse.c b/asn1c_defs/all-defs/ResourceStatusResponse.c new file mode 100644 index 0000000..031b84a --- /dev/null +++ b/asn1c_defs/all-defs/ResourceStatusResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P32, + 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/asn1c_defs/all-defs/ResourceStatusResponse.h b/asn1c_defs/all-defs/ResourceStatusResponse.h new file mode 100644 index 0000000..b917e9f --- /dev/null +++ b/asn1c_defs/all-defs/ResourceStatusResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ResourceStatusResponse_H_ +#define _ResourceStatusResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ResourceStatusResponse */ +typedef struct ResourceStatusResponse { + ProtocolIE_Container_8180P32_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 diff --git a/asn1c_defs/all-defs/ResourceStatusUpdate.c b/asn1c_defs/all-defs/ResourceStatusUpdate.c new file mode 100644 index 0000000..c7f1dfe --- /dev/null +++ b/asn1c_defs/all-defs/ResourceStatusUpdate.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P34, + 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/asn1c_defs/all-defs/ResourceStatusUpdate.h b/asn1c_defs/all-defs/ResourceStatusUpdate.h new file mode 100644 index 0000000..3d9d6be --- /dev/null +++ b/asn1c_defs/all-defs/ResourceStatusUpdate.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ResourceStatusUpdate_H_ +#define _ResourceStatusUpdate_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ResourceStatusUpdate */ +typedef struct ResourceStatusUpdate { + ProtocolIE_Container_8180P34_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 diff --git a/asn1c_defs/all-defs/ResourceType.c b/asn1c_defs/all-defs/ResourceType.c new file mode 100644 index 0000000..db14909 --- /dev/null +++ b/asn1c_defs/all-defs/ResourceType.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ResourceType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_ResourceType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ResourceType_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/ResourceType.h b/asn1c_defs/all-defs/ResourceType.h new file mode 100644 index 0000000..8266da3 --- /dev/null +++ b/asn1c_defs/all-defs/ResourceType.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ResourceType_H_ +#define _ResourceType_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/RespondingNodeType-EndcConfigUpdate.c b/asn1c_defs/all-defs/RespondingNodeType-EndcConfigUpdate.c new file mode 100644 index 0000000..457934a --- /dev/null +++ b/asn1c_defs/all-defs/RespondingNodeType-EndcConfigUpdate.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "RespondingNodeType-EndcConfigUpdate.h" + +#include "ProtocolIE-Container.h" +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_8180P95, + 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_8180P96, + 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) */ + { 0, &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/asn1c_defs/all-defs/RespondingNodeType-EndcConfigUpdate.h b/asn1c_defs/all-defs/RespondingNodeType-EndcConfigUpdate.h new file mode 100644 index 0000000..989c623 --- /dev/null +++ b/asn1c_defs/all-defs/RespondingNodeType-EndcConfigUpdate.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RespondingNodeType_EndcConfigUpdate_H_ +#define _RespondingNodeType_EndcConfigUpdate_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/RespondingNodeType-EndcX2Removal.c b/asn1c_defs/all-defs/RespondingNodeType-EndcX2Removal.c new file mode 100644 index 0000000..bec06d8 --- /dev/null +++ b/asn1c_defs/all-defs/RespondingNodeType-EndcX2Removal.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "RespondingNodeType-EndcX2Removal.h" + +#include "ProtocolIE-Container.h" +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_8180P115, + 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_8180P116, + 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) */ + { 0, &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/asn1c_defs/all-defs/RespondingNodeType-EndcX2Removal.h b/asn1c_defs/all-defs/RespondingNodeType-EndcX2Removal.h new file mode 100644 index 0000000..e34ac7f --- /dev/null +++ b/asn1c_defs/all-defs/RespondingNodeType-EndcX2Removal.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RespondingNodeType_EndcX2Removal_H_ +#define _RespondingNodeType_EndcX2Removal_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/RespondingNodeType-EndcX2Setup.c b/asn1c_defs/all-defs/RespondingNodeType-EndcX2Setup.c new file mode 100644 index 0000000..c3a7f35 --- /dev/null +++ b/asn1c_defs/all-defs/RespondingNodeType-EndcX2Setup.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "RespondingNodeType-EndcX2Setup.h" + +#include "ProtocolIE-Container.h" +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_8180P88, + 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_8180P89, + 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) */ + { 0, &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/asn1c_defs/all-defs/RespondingNodeType-EndcX2Setup.h b/asn1c_defs/all-defs/RespondingNodeType-EndcX2Setup.h new file mode 100644 index 0000000..c1f636d --- /dev/null +++ b/asn1c_defs/all-defs/RespondingNodeType-EndcX2Setup.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RespondingNodeType_EndcX2Setup_H_ +#define _RespondingNodeType_EndcX2Setup_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/RespondingNodeType-EutranrCellResourceCoordination.c b/asn1c_defs/all-defs/RespondingNodeType-EutranrCellResourceCoordination.c new file mode 100644 index 0000000..ebbdc7e --- /dev/null +++ b/asn1c_defs/all-defs/RespondingNodeType-EutranrCellResourceCoordination.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "RespondingNodeType-EutranrCellResourceCoordination.h" + +#include "ProtocolIE-Container.h" +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_8180P109, + 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_8180P110, + 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) */ + { 0, &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/asn1c_defs/all-defs/RespondingNodeType-EutranrCellResourceCoordination.h b/asn1c_defs/all-defs/RespondingNodeType-EutranrCellResourceCoordination.h new file mode 100644 index 0000000..2c3b436 --- /dev/null +++ b/asn1c_defs/all-defs/RespondingNodeType-EutranrCellResourceCoordination.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RespondingNodeType_EutranrCellResourceCoordination_H_ +#define _RespondingNodeType_EutranrCellResourceCoordination_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/ResponseInformationSeNBReconfComp-RejectByMeNBItem.c b/asn1c_defs/all-defs/ResponseInformationSeNBReconfComp-RejectByMeNBItem.c new file mode 100644 index 0000000..fb03475 --- /dev/null +++ b/asn1c_defs/all-defs/ResponseInformationSeNBReconfComp-RejectByMeNBItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P22, + 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/asn1c_defs/all-defs/ResponseInformationSeNBReconfComp-RejectByMeNBItem.h b/asn1c_defs/all-defs/ResponseInformationSeNBReconfComp-RejectByMeNBItem.h new file mode 100644 index 0000000..4d1bd09 --- /dev/null +++ b/asn1c_defs/all-defs/ResponseInformationSeNBReconfComp-RejectByMeNBItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ResponseInformationSeNBReconfComp_RejectByMeNBItem_H_ +#define _ResponseInformationSeNBReconfComp_RejectByMeNBItem_H_ + + +#include + +/* Including external dependencies */ +#include "Cause.h" +#include "MeNBtoSeNBContainer.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/ResponseInformationSeNBReconfComp-SuccessItem.c b/asn1c_defs/all-defs/ResponseInformationSeNBReconfComp-SuccessItem.c new file mode 100644 index 0000000..8a55832 --- /dev/null +++ b/asn1c_defs/all-defs/ResponseInformationSeNBReconfComp-SuccessItem.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P21, + 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/asn1c_defs/all-defs/ResponseInformationSeNBReconfComp-SuccessItem.h b/asn1c_defs/all-defs/ResponseInformationSeNBReconfComp-SuccessItem.h new file mode 100644 index 0000000..0872414 --- /dev/null +++ b/asn1c_defs/all-defs/ResponseInformationSeNBReconfComp-SuccessItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ResponseInformationSeNBReconfComp_SuccessItem_H_ +#define _ResponseInformationSeNBReconfComp_SuccessItem_H_ + + +#include + +/* Including external dependencies */ +#include "MeNBtoSeNBContainer.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/ResponseInformationSeNBReconfComp.c b/asn1c_defs/all-defs/ResponseInformationSeNBReconfComp.c new file mode 100644 index 0000000..c9e0a5e --- /dev/null +++ b/asn1c_defs/all-defs/ResponseInformationSeNBReconfComp.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ResponseInformationSeNBReconfComp.h" + +#include "ResponseInformationSeNBReconfComp-SuccessItem.h" +#include "ResponseInformationSeNBReconfComp-RejectByMeNBItem.h" +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) */ + { 0, &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/asn1c_defs/all-defs/ResponseInformationSeNBReconfComp.h b/asn1c_defs/all-defs/ResponseInformationSeNBReconfComp.h new file mode 100644 index 0000000..8181b2a --- /dev/null +++ b/asn1c_defs/all-defs/ResponseInformationSeNBReconfComp.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ResponseInformationSeNBReconfComp_H_ +#define _ResponseInformationSeNBReconfComp_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/ResponseInformationSgNBReconfComp-RejectByMeNBItem.c b/asn1c_defs/all-defs/ResponseInformationSgNBReconfComp-RejectByMeNBItem.c new file mode 100644 index 0000000..c4fc17c --- /dev/null +++ b/asn1c_defs/all-defs/ResponseInformationSgNBReconfComp-RejectByMeNBItem.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P51, + 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/asn1c_defs/all-defs/ResponseInformationSgNBReconfComp-RejectByMeNBItem.h b/asn1c_defs/all-defs/ResponseInformationSgNBReconfComp-RejectByMeNBItem.h new file mode 100644 index 0000000..6de3968 --- /dev/null +++ b/asn1c_defs/all-defs/ResponseInformationSgNBReconfComp-RejectByMeNBItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ResponseInformationSgNBReconfComp_RejectByMeNBItem_H_ +#define _ResponseInformationSgNBReconfComp_RejectByMeNBItem_H_ + + +#include + +/* Including external dependencies */ +#include "Cause.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/ResponseInformationSgNBReconfComp-SuccessItem.c b/asn1c_defs/all-defs/ResponseInformationSgNBReconfComp-SuccessItem.c new file mode 100644 index 0000000..67bfddd --- /dev/null +++ b/asn1c_defs/all-defs/ResponseInformationSgNBReconfComp-SuccessItem.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P50, + 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/asn1c_defs/all-defs/ResponseInformationSgNBReconfComp-SuccessItem.h b/asn1c_defs/all-defs/ResponseInformationSgNBReconfComp-SuccessItem.h new file mode 100644 index 0000000..e9e39ce --- /dev/null +++ b/asn1c_defs/all-defs/ResponseInformationSgNBReconfComp-SuccessItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ResponseInformationSgNBReconfComp_SuccessItem_H_ +#define _ResponseInformationSgNBReconfComp_SuccessItem_H_ + + +#include + +/* Including external dependencies */ +#include "MeNBtoSgNBContainer.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/ResponseInformationSgNBReconfComp.c b/asn1c_defs/all-defs/ResponseInformationSgNBReconfComp.c new file mode 100644 index 0000000..d686621 --- /dev/null +++ b/asn1c_defs/all-defs/ResponseInformationSgNBReconfComp.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ResponseInformationSgNBReconfComp.h" + +#include "ResponseInformationSgNBReconfComp-SuccessItem.h" +#include "ResponseInformationSgNBReconfComp-RejectByMeNBItem.h" +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) */ + { 0, &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/asn1c_defs/all-defs/ResponseInformationSgNBReconfComp.h b/asn1c_defs/all-defs/ResponseInformationSgNBReconfComp.h new file mode 100644 index 0000000..73a7d40 --- /dev/null +++ b/asn1c_defs/all-defs/ResponseInformationSgNBReconfComp.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ResponseInformationSgNBReconfComp_H_ +#define _ResponseInformationSgNBReconfComp_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/ResumeID.c b/asn1c_defs/all-defs/ResumeID.c new file mode 100644 index 0000000..2083b3a --- /dev/null +++ b/asn1c_defs/all-defs/ResumeID.c @@ -0,0 +1,134 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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_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, + { 0, &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, + { 0, &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) */ + { 0, &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/asn1c_defs/all-defs/ResumeID.h b/asn1c_defs/all-defs/ResumeID.h new file mode 100644 index 0000000..26d1973 --- /dev/null +++ b/asn1c_defs/all-defs/ResumeID.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ResumeID_H_ +#define _ResumeID_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/RetrieveUEContextFailure.c b/asn1c_defs/all-defs/RetrieveUEContextFailure.c new file mode 100644 index 0000000..8c67298 --- /dev/null +++ b/asn1c_defs/all-defs/RetrieveUEContextFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P63, + 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/asn1c_defs/all-defs/RetrieveUEContextFailure.h b/asn1c_defs/all-defs/RetrieveUEContextFailure.h new file mode 100644 index 0000000..fc7a302 --- /dev/null +++ b/asn1c_defs/all-defs/RetrieveUEContextFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RetrieveUEContextFailure_H_ +#define _RetrieveUEContextFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RetrieveUEContextFailure */ +typedef struct RetrieveUEContextFailure { + ProtocolIE_Container_8180P63_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 diff --git a/asn1c_defs/all-defs/RetrieveUEContextRequest.c b/asn1c_defs/all-defs/RetrieveUEContextRequest.c new file mode 100644 index 0000000..502a53f --- /dev/null +++ b/asn1c_defs/all-defs/RetrieveUEContextRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P61, + 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/asn1c_defs/all-defs/RetrieveUEContextRequest.h b/asn1c_defs/all-defs/RetrieveUEContextRequest.h new file mode 100644 index 0000000..755badb --- /dev/null +++ b/asn1c_defs/all-defs/RetrieveUEContextRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RetrieveUEContextRequest_H_ +#define _RetrieveUEContextRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RetrieveUEContextRequest */ +typedef struct RetrieveUEContextRequest { + ProtocolIE_Container_8180P61_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 diff --git a/asn1c_defs/all-defs/RetrieveUEContextResponse.c b/asn1c_defs/all-defs/RetrieveUEContextResponse.c new file mode 100644 index 0000000..caec015 --- /dev/null +++ b/asn1c_defs/all-defs/RetrieveUEContextResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P62, + 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/asn1c_defs/all-defs/RetrieveUEContextResponse.h b/asn1c_defs/all-defs/RetrieveUEContextResponse.h new file mode 100644 index 0000000..c2f9ad5 --- /dev/null +++ b/asn1c_defs/all-defs/RetrieveUEContextResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _RetrieveUEContextResponse_H_ +#define _RetrieveUEContextResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RetrieveUEContextResponse */ +typedef struct RetrieveUEContextResponse { + ProtocolIE_Container_8180P62_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 diff --git a/asn1c_defs/all-defs/S1TNLLoadIndicator.c b/asn1c_defs/all-defs/S1TNLLoadIndicator.c new file mode 100644 index 0000000..c01fbeb --- /dev/null +++ b/asn1c_defs/all-defs/S1TNLLoadIndicator.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P189, + 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/asn1c_defs/all-defs/S1TNLLoadIndicator.h b/asn1c_defs/all-defs/S1TNLLoadIndicator.h new file mode 100644 index 0000000..0de13f1 --- /dev/null +++ b/asn1c_defs/all-defs/S1TNLLoadIndicator.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _S1TNLLoadIndicator_H_ +#define _S1TNLLoadIndicator_H_ + + +#include + +/* Including external dependencies */ +#include "LoadIndicator.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/SCGChangeIndication.c b/asn1c_defs/all-defs/SCGChangeIndication.c new file mode 100644 index 0000000..7083468 --- /dev/null +++ b/asn1c_defs/all-defs/SCGChangeIndication.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "SCGChangeIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_SCGChangeIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SCGChangeIndication_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/SCGChangeIndication.h b/asn1c_defs/all-defs/SCGChangeIndication.h new file mode 100644 index 0000000..2968807 --- /dev/null +++ b/asn1c_defs/all-defs/SCGChangeIndication.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SCGChangeIndication_H_ +#define _SCGChangeIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/SCGConfigurationQuery.c b/asn1c_defs/all-defs/SCGConfigurationQuery.c new file mode 100644 index 0000000..381116a --- /dev/null +++ b/asn1c_defs/all-defs/SCGConfigurationQuery.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "SCGConfigurationQuery.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_SCGConfigurationQuery_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SCGConfigurationQuery_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/SCGConfigurationQuery.h b/asn1c_defs/all-defs/SCGConfigurationQuery.h new file mode 100644 index 0000000..5d845bc --- /dev/null +++ b/asn1c_defs/all-defs/SCGConfigurationQuery.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SCGConfigurationQuery_H_ +#define _SCGConfigurationQuery_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/SGNB-Addition-Trigger-Ind.c b/asn1c_defs/all-defs/SGNB-Addition-Trigger-Ind.c new file mode 100644 index 0000000..c9abd1c --- /dev/null +++ b/asn1c_defs/all-defs/SGNB-Addition-Trigger-Ind.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "SGNB-Addition-Trigger-Ind.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &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/asn1c_defs/all-defs/SGNB-Addition-Trigger-Ind.h b/asn1c_defs/all-defs/SGNB-Addition-Trigger-Ind.h new file mode 100644 index 0000000..5ee735d --- /dev/null +++ b/asn1c_defs/all-defs/SGNB-Addition-Trigger-Ind.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SGNB_Addition_Trigger_Ind_H_ +#define _SGNB_Addition_Trigger_Ind_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/SIPTOBearerDeactivationIndication.c b/asn1c_defs/all-defs/SIPTOBearerDeactivationIndication.c new file mode 100644 index 0000000..f1b58a2 --- /dev/null +++ b/asn1c_defs/all-defs/SIPTOBearerDeactivationIndication.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "SIPTOBearerDeactivationIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_SIPTOBearerDeactivationIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SIPTOBearerDeactivationIndication_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/SIPTOBearerDeactivationIndication.h b/asn1c_defs/all-defs/SIPTOBearerDeactivationIndication.h new file mode 100644 index 0000000..bef0ccf --- /dev/null +++ b/asn1c_defs/all-defs/SIPTOBearerDeactivationIndication.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SIPTOBearerDeactivationIndication_H_ +#define _SIPTOBearerDeactivationIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/SNStatusTransfer.c b/asn1c_defs/all-defs/SNStatusTransfer.c new file mode 100644 index 0000000..0c810dd --- /dev/null +++ b/asn1c_defs/all-defs/SNStatusTransfer.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P18, + 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/asn1c_defs/all-defs/SNStatusTransfer.h b/asn1c_defs/all-defs/SNStatusTransfer.h new file mode 100644 index 0000000..82499c8 --- /dev/null +++ b/asn1c_defs/all-defs/SNStatusTransfer.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SNStatusTransfer_H_ +#define _SNStatusTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SNStatusTransfer */ +typedef struct SNStatusTransfer { + ProtocolIE_Container_8180P18_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 diff --git a/asn1c_defs/all-defs/SRBType.c b/asn1c_defs/all-defs/SRBType.c new file mode 100644 index 0000000..2cc230f --- /dev/null +++ b/asn1c_defs/all-defs/SRBType.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "SRBType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_SRBType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SRBType_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/SRBType.h b/asn1c_defs/all-defs/SRBType.h new file mode 100644 index 0000000..233c1c3 --- /dev/null +++ b/asn1c_defs/all-defs/SRBType.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SRBType_H_ +#define _SRBType_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/SRVCCOperationPossible.c b/asn1c_defs/all-defs/SRVCCOperationPossible.c new file mode 100644 index 0000000..b036910 --- /dev/null +++ b/asn1c_defs/all-defs/SRVCCOperationPossible.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "SRVCCOperationPossible.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_SRVCCOperationPossible_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SRVCCOperationPossible_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/SRVCCOperationPossible.h b/asn1c_defs/all-defs/SRVCCOperationPossible.h new file mode 100644 index 0000000..76b9c64 --- /dev/null +++ b/asn1c_defs/all-defs/SRVCCOperationPossible.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SRVCCOperationPossible_H_ +#define _SRVCCOperationPossible_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/SULInformation.c b/asn1c_defs/all-defs/SULInformation.c new file mode 100644 index 0000000..3940be1 --- /dev/null +++ b/asn1c_defs/all-defs/SULInformation.c @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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, + { 0, &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_8231P199, + 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/asn1c_defs/all-defs/SULInformation.h b/asn1c_defs/all-defs/SULInformation.h new file mode 100644 index 0000000..db8ede1 --- /dev/null +++ b/asn1c_defs/all-defs/SULInformation.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SULInformation_H_ +#define _SULInformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include "NR-TxBW.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/ScheduledCommunicationTime.c b/asn1c_defs/all-defs/ScheduledCommunicationTime.c new file mode 100644 index 0000000..67d8d75 --- /dev/null +++ b/asn1c_defs/all-defs/ScheduledCommunicationTime.c @@ -0,0 +1,179 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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_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, + { 0, &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, + { 0, &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, + { 0, &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_8231P197, + 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/asn1c_defs/all-defs/ScheduledCommunicationTime.h b/asn1c_defs/all-defs/ScheduledCommunicationTime.h new file mode 100644 index 0000000..f6285b2 --- /dev/null +++ b/asn1c_defs/all-defs/ScheduledCommunicationTime.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ScheduledCommunicationTime_H_ +#define _ScheduledCommunicationTime_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/SeNBAdditionRequest.c b/asn1c_defs/all-defs/SeNBAdditionRequest.c new file mode 100644 index 0000000..72593cd --- /dev/null +++ b/asn1c_defs/all-defs/SeNBAdditionRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P44, + 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/asn1c_defs/all-defs/SeNBAdditionRequest.h b/asn1c_defs/all-defs/SeNBAdditionRequest.h new file mode 100644 index 0000000..b247b52 --- /dev/null +++ b/asn1c_defs/all-defs/SeNBAdditionRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SeNBAdditionRequest_H_ +#define _SeNBAdditionRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SeNBAdditionRequest */ +typedef struct SeNBAdditionRequest { + ProtocolIE_Container_8180P44_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 diff --git a/asn1c_defs/all-defs/SeNBAdditionRequestAcknowledge.c b/asn1c_defs/all-defs/SeNBAdditionRequestAcknowledge.c new file mode 100644 index 0000000..0386205 --- /dev/null +++ b/asn1c_defs/all-defs/SeNBAdditionRequestAcknowledge.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P45, + 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/asn1c_defs/all-defs/SeNBAdditionRequestAcknowledge.h b/asn1c_defs/all-defs/SeNBAdditionRequestAcknowledge.h new file mode 100644 index 0000000..1f08734 --- /dev/null +++ b/asn1c_defs/all-defs/SeNBAdditionRequestAcknowledge.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SeNBAdditionRequestAcknowledge_H_ +#define _SeNBAdditionRequestAcknowledge_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SeNBAdditionRequestAcknowledge */ +typedef struct SeNBAdditionRequestAcknowledge { + ProtocolIE_Container_8180P45_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 diff --git a/asn1c_defs/all-defs/SeNBAdditionRequestReject.c b/asn1c_defs/all-defs/SeNBAdditionRequestReject.c new file mode 100644 index 0000000..ececd73 --- /dev/null +++ b/asn1c_defs/all-defs/SeNBAdditionRequestReject.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P46, + 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/asn1c_defs/all-defs/SeNBAdditionRequestReject.h b/asn1c_defs/all-defs/SeNBAdditionRequestReject.h new file mode 100644 index 0000000..289cc7a --- /dev/null +++ b/asn1c_defs/all-defs/SeNBAdditionRequestReject.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SeNBAdditionRequestReject_H_ +#define _SeNBAdditionRequestReject_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SeNBAdditionRequestReject */ +typedef struct SeNBAdditionRequestReject { + ProtocolIE_Container_8180P46_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 diff --git a/asn1c_defs/all-defs/SeNBCounterCheckRequest.c b/asn1c_defs/all-defs/SeNBCounterCheckRequest.c new file mode 100644 index 0000000..55f7494 --- /dev/null +++ b/asn1c_defs/all-defs/SeNBCounterCheckRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P57, + 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/asn1c_defs/all-defs/SeNBCounterCheckRequest.h b/asn1c_defs/all-defs/SeNBCounterCheckRequest.h new file mode 100644 index 0000000..31715e6 --- /dev/null +++ b/asn1c_defs/all-defs/SeNBCounterCheckRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SeNBCounterCheckRequest_H_ +#define _SeNBCounterCheckRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SeNBCounterCheckRequest */ +typedef struct SeNBCounterCheckRequest { + ProtocolIE_Container_8180P57_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 diff --git a/asn1c_defs/all-defs/SeNBModificationConfirm.c b/asn1c_defs/all-defs/SeNBModificationConfirm.c new file mode 100644 index 0000000..e09c8d4 --- /dev/null +++ b/asn1c_defs/all-defs/SeNBModificationConfirm.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P52, + 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/asn1c_defs/all-defs/SeNBModificationConfirm.h b/asn1c_defs/all-defs/SeNBModificationConfirm.h new file mode 100644 index 0000000..0a97331 --- /dev/null +++ b/asn1c_defs/all-defs/SeNBModificationConfirm.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SeNBModificationConfirm_H_ +#define _SeNBModificationConfirm_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SeNBModificationConfirm */ +typedef struct SeNBModificationConfirm { + ProtocolIE_Container_8180P52_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 diff --git a/asn1c_defs/all-defs/SeNBModificationRefuse.c b/asn1c_defs/all-defs/SeNBModificationRefuse.c new file mode 100644 index 0000000..9c44b0c --- /dev/null +++ b/asn1c_defs/all-defs/SeNBModificationRefuse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P53, + 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/asn1c_defs/all-defs/SeNBModificationRefuse.h b/asn1c_defs/all-defs/SeNBModificationRefuse.h new file mode 100644 index 0000000..4e20b5b --- /dev/null +++ b/asn1c_defs/all-defs/SeNBModificationRefuse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SeNBModificationRefuse_H_ +#define _SeNBModificationRefuse_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SeNBModificationRefuse */ +typedef struct SeNBModificationRefuse { + ProtocolIE_Container_8180P53_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 diff --git a/asn1c_defs/all-defs/SeNBModificationRequest.c b/asn1c_defs/all-defs/SeNBModificationRequest.c new file mode 100644 index 0000000..f4633d0 --- /dev/null +++ b/asn1c_defs/all-defs/SeNBModificationRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P48, + 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/asn1c_defs/all-defs/SeNBModificationRequest.h b/asn1c_defs/all-defs/SeNBModificationRequest.h new file mode 100644 index 0000000..ced647a --- /dev/null +++ b/asn1c_defs/all-defs/SeNBModificationRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SeNBModificationRequest_H_ +#define _SeNBModificationRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SeNBModificationRequest */ +typedef struct SeNBModificationRequest { + ProtocolIE_Container_8180P48_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 diff --git a/asn1c_defs/all-defs/SeNBModificationRequestAcknowledge.c b/asn1c_defs/all-defs/SeNBModificationRequestAcknowledge.c new file mode 100644 index 0000000..05b04e2 --- /dev/null +++ b/asn1c_defs/all-defs/SeNBModificationRequestAcknowledge.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P49, + 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/asn1c_defs/all-defs/SeNBModificationRequestAcknowledge.h b/asn1c_defs/all-defs/SeNBModificationRequestAcknowledge.h new file mode 100644 index 0000000..93821a1 --- /dev/null +++ b/asn1c_defs/all-defs/SeNBModificationRequestAcknowledge.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SeNBModificationRequestAcknowledge_H_ +#define _SeNBModificationRequestAcknowledge_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SeNBModificationRequestAcknowledge */ +typedef struct SeNBModificationRequestAcknowledge { + ProtocolIE_Container_8180P49_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 diff --git a/asn1c_defs/all-defs/SeNBModificationRequestReject.c b/asn1c_defs/all-defs/SeNBModificationRequestReject.c new file mode 100644 index 0000000..538e253 --- /dev/null +++ b/asn1c_defs/all-defs/SeNBModificationRequestReject.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P50, + 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/asn1c_defs/all-defs/SeNBModificationRequestReject.h b/asn1c_defs/all-defs/SeNBModificationRequestReject.h new file mode 100644 index 0000000..3a5f5af --- /dev/null +++ b/asn1c_defs/all-defs/SeNBModificationRequestReject.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SeNBModificationRequestReject_H_ +#define _SeNBModificationRequestReject_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SeNBModificationRequestReject */ +typedef struct SeNBModificationRequestReject { + ProtocolIE_Container_8180P50_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 diff --git a/asn1c_defs/all-defs/SeNBModificationRequired.c b/asn1c_defs/all-defs/SeNBModificationRequired.c new file mode 100644 index 0000000..55ebcb0 --- /dev/null +++ b/asn1c_defs/all-defs/SeNBModificationRequired.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P51, + 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/asn1c_defs/all-defs/SeNBModificationRequired.h b/asn1c_defs/all-defs/SeNBModificationRequired.h new file mode 100644 index 0000000..05eee5a --- /dev/null +++ b/asn1c_defs/all-defs/SeNBModificationRequired.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SeNBModificationRequired_H_ +#define _SeNBModificationRequired_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SeNBModificationRequired */ +typedef struct SeNBModificationRequired { + ProtocolIE_Container_8180P51_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 diff --git a/asn1c_defs/all-defs/SeNBReconfigurationComplete.c b/asn1c_defs/all-defs/SeNBReconfigurationComplete.c new file mode 100644 index 0000000..778ac42 --- /dev/null +++ b/asn1c_defs/all-defs/SeNBReconfigurationComplete.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P47, + 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/asn1c_defs/all-defs/SeNBReconfigurationComplete.h b/asn1c_defs/all-defs/SeNBReconfigurationComplete.h new file mode 100644 index 0000000..77f0e5e --- /dev/null +++ b/asn1c_defs/all-defs/SeNBReconfigurationComplete.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SeNBReconfigurationComplete_H_ +#define _SeNBReconfigurationComplete_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SeNBReconfigurationComplete */ +typedef struct SeNBReconfigurationComplete { + ProtocolIE_Container_8180P47_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 diff --git a/asn1c_defs/all-defs/SeNBReleaseConfirm.c b/asn1c_defs/all-defs/SeNBReleaseConfirm.c new file mode 100644 index 0000000..37c5664 --- /dev/null +++ b/asn1c_defs/all-defs/SeNBReleaseConfirm.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P56, + 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/asn1c_defs/all-defs/SeNBReleaseConfirm.h b/asn1c_defs/all-defs/SeNBReleaseConfirm.h new file mode 100644 index 0000000..3a37fc4 --- /dev/null +++ b/asn1c_defs/all-defs/SeNBReleaseConfirm.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SeNBReleaseConfirm_H_ +#define _SeNBReleaseConfirm_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SeNBReleaseConfirm */ +typedef struct SeNBReleaseConfirm { + ProtocolIE_Container_8180P56_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 diff --git a/asn1c_defs/all-defs/SeNBReleaseRequest.c b/asn1c_defs/all-defs/SeNBReleaseRequest.c new file mode 100644 index 0000000..0228c98 --- /dev/null +++ b/asn1c_defs/all-defs/SeNBReleaseRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P54, + 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/asn1c_defs/all-defs/SeNBReleaseRequest.h b/asn1c_defs/all-defs/SeNBReleaseRequest.h new file mode 100644 index 0000000..219b783 --- /dev/null +++ b/asn1c_defs/all-defs/SeNBReleaseRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SeNBReleaseRequest_H_ +#define _SeNBReleaseRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SeNBReleaseRequest */ +typedef struct SeNBReleaseRequest { + ProtocolIE_Container_8180P54_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 diff --git a/asn1c_defs/all-defs/SeNBReleaseRequired.c b/asn1c_defs/all-defs/SeNBReleaseRequired.c new file mode 100644 index 0000000..50aebb9 --- /dev/null +++ b/asn1c_defs/all-defs/SeNBReleaseRequired.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P55, + 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/asn1c_defs/all-defs/SeNBReleaseRequired.h b/asn1c_defs/all-defs/SeNBReleaseRequired.h new file mode 100644 index 0000000..9e1cacc --- /dev/null +++ b/asn1c_defs/all-defs/SeNBReleaseRequired.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SeNBReleaseRequired_H_ +#define _SeNBReleaseRequired_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SeNBReleaseRequired */ +typedef struct SeNBReleaseRequired { + ProtocolIE_Container_8180P55_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 diff --git a/asn1c_defs/all-defs/SeNBSecurityKey.c b/asn1c_defs/all-defs/SeNBSecurityKey.c new file mode 100644 index 0000000..1da26bc --- /dev/null +++ b/asn1c_defs/all-defs/SeNBSecurityKey.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_SeNBSecurityKey_constr_1, SeNBSecurityKey_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/SeNBSecurityKey.h b/asn1c_defs/all-defs/SeNBSecurityKey.h new file mode 100644 index 0000000..6ce55a8 --- /dev/null +++ b/asn1c_defs/all-defs/SeNBSecurityKey.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SeNBSecurityKey_H_ +#define _SeNBSecurityKey_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/SeNBtoMeNBContainer.c b/asn1c_defs/all-defs/SeNBtoMeNBContainer.c new file mode 100644 index 0000000..234374c --- /dev/null +++ b/asn1c_defs/all-defs/SeNBtoMeNBContainer.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/SeNBtoMeNBContainer.h b/asn1c_defs/all-defs/SeNBtoMeNBContainer.h new file mode 100644 index 0000000..fc65e0e --- /dev/null +++ b/asn1c_defs/all-defs/SeNBtoMeNBContainer.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SeNBtoMeNBContainer_H_ +#define _SeNBtoMeNBContainer_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/SecondaryRATDataUsageReport.c b/asn1c_defs/all-defs/SecondaryRATDataUsageReport.c new file mode 100644 index 0000000..291f389 --- /dev/null +++ b/asn1c_defs/all-defs/SecondaryRATDataUsageReport.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P101, + 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/asn1c_defs/all-defs/SecondaryRATDataUsageReport.h b/asn1c_defs/all-defs/SecondaryRATDataUsageReport.h new file mode 100644 index 0000000..3e77213 --- /dev/null +++ b/asn1c_defs/all-defs/SecondaryRATDataUsageReport.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SecondaryRATDataUsageReport_H_ +#define _SecondaryRATDataUsageReport_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SecondaryRATDataUsageReport */ +typedef struct SecondaryRATDataUsageReport { + ProtocolIE_Container_8180P101_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 diff --git a/asn1c_defs/all-defs/SecondaryRATUsageReport-Item.c b/asn1c_defs/all-defs/SecondaryRATUsageReport-Item.c new file mode 100644 index 0000000..8b14674 --- /dev/null +++ b/asn1c_defs/all-defs/SecondaryRATUsageReport-Item.c @@ -0,0 +1,129 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "SecondaryRATUsageReport-Item.h" + +#include "ProtocolExtensionContainer.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &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_8231P190, + 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/asn1c_defs/all-defs/SecondaryRATUsageReport-Item.h b/asn1c_defs/all-defs/SecondaryRATUsageReport-Item.h new file mode 100644 index 0000000..bb34159 --- /dev/null +++ b/asn1c_defs/all-defs/SecondaryRATUsageReport-Item.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SecondaryRATUsageReport_Item_H_ +#define _SecondaryRATUsageReport_Item_H_ + + +#include + +/* Including external dependencies */ +#include "E-RAB-ID.h" +#include +#include "E-RABUsageReportList.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/SecondaryRATUsageReportList.c b/asn1c_defs/all-defs/SecondaryRATUsageReportList.c new file mode 100644 index 0000000..e10c1c6 --- /dev/null +++ b/asn1c_defs/all-defs/SecondaryRATUsageReportList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "SecondaryRATUsageReportList.h" + +#include "ProtocolIE-Single-Container.h" +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_8183P48, + 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 */ + { 0, &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/asn1c_defs/all-defs/SecondaryRATUsageReportList.h b/asn1c_defs/all-defs/SecondaryRATUsageReportList.h new file mode 100644 index 0000000..1a8b545 --- /dev/null +++ b/asn1c_defs/all-defs/SecondaryRATUsageReportList.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SecondaryRATUsageReportList_H_ +#define _SecondaryRATUsageReportList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ServedCell-Information.c b/asn1c_defs/all-defs/ServedCell-Information.c new file mode 100644 index 0000000..b966813 --- /dev/null +++ b/asn1c_defs/all-defs/ServedCell-Information.c @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P192, + 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/asn1c_defs/all-defs/ServedCell-Information.h b/asn1c_defs/all-defs/ServedCell-Information.h new file mode 100644 index 0000000..7145eea --- /dev/null +++ b/asn1c_defs/all-defs/ServedCell-Information.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ServedCell_Information_H_ +#define _ServedCell_Information_H_ + + +#include + +/* Including external dependencies */ +#include "PCI.h" +#include "ECGI.h" +#include "TAC.h" +#include "BroadcastPLMNs-Item.h" +#include "EUTRA-Mode-Info.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/ServedCells.c b/asn1c_defs/all-defs/ServedCells.c new file mode 100644 index 0000000..886ea9c --- /dev/null +++ b/asn1c_defs/all-defs/ServedCells.c @@ -0,0 +1,115 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ServedCells.h" + +#include "Neighbour-Information.h" +#include "ProtocolExtensionContainer.h" +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_8231P191, + 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 */ + { 0, &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/asn1c_defs/all-defs/ServedCells.h b/asn1c_defs/all-defs/ServedCells.h new file mode 100644 index 0000000..4893ac7 --- /dev/null +++ b/asn1c_defs/all-defs/ServedCells.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ServedCells_H_ +#define _ServedCells_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ServedCell-Information.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ServedCellsToActivate-Item.c b/asn1c_defs/all-defs/ServedCellsToActivate-Item.c new file mode 100644 index 0000000..a82b176 --- /dev/null +++ b/asn1c_defs/all-defs/ServedCellsToActivate-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P14, + 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/asn1c_defs/all-defs/ServedCellsToActivate-Item.h b/asn1c_defs/all-defs/ServedCellsToActivate-Item.h new file mode 100644 index 0000000..d4ab644 --- /dev/null +++ b/asn1c_defs/all-defs/ServedCellsToActivate-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ServedCellsToActivate_Item_H_ +#define _ServedCellsToActivate_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ECGI.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/ServedCellsToActivate.c b/asn1c_defs/all-defs/ServedCellsToActivate.c new file mode 100644 index 0000000..66a757d --- /dev/null +++ b/asn1c_defs/all-defs/ServedCellsToActivate.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ServedCellsToActivate.h" + +#include "ServedCellsToActivate-Item.h" +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 */ + { 0, &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/asn1c_defs/all-defs/ServedCellsToActivate.h b/asn1c_defs/all-defs/ServedCellsToActivate.h new file mode 100644 index 0000000..5525daa --- /dev/null +++ b/asn1c_defs/all-defs/ServedCellsToActivate.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ServedCellsToActivate_H_ +#define _ServedCellsToActivate_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ServedCellsToModify-Item.c b/asn1c_defs/all-defs/ServedCellsToModify-Item.c new file mode 100644 index 0000000..75864e7 --- /dev/null +++ b/asn1c_defs/all-defs/ServedCellsToModify-Item.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P8, + 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/asn1c_defs/all-defs/ServedCellsToModify-Item.h b/asn1c_defs/all-defs/ServedCellsToModify-Item.h new file mode 100644 index 0000000..8b6e75d --- /dev/null +++ b/asn1c_defs/all-defs/ServedCellsToModify-Item.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ServedCellsToModify_Item_H_ +#define _ServedCellsToModify_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ECGI.h" +#include "ServedCell-Information.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/ServedCellsToModify.c b/asn1c_defs/all-defs/ServedCellsToModify.c new file mode 100644 index 0000000..b6e5cda --- /dev/null +++ b/asn1c_defs/all-defs/ServedCellsToModify.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ServedCellsToModify.h" + +#include "ServedCellsToModify-Item.h" +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 */ + { 0, &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/asn1c_defs/all-defs/ServedCellsToModify.h b/asn1c_defs/all-defs/ServedCellsToModify.h new file mode 100644 index 0000000..fcf2577 --- /dev/null +++ b/asn1c_defs/all-defs/ServedCellsToModify.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ServedCellsToModify_H_ +#define _ServedCellsToModify_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ServedEUTRAcellsENDCX2ManagementList.c b/asn1c_defs/all-defs/ServedEUTRAcellsENDCX2ManagementList.c new file mode 100644 index 0000000..95a2654 --- /dev/null +++ b/asn1c_defs/all-defs/ServedEUTRAcellsENDCX2ManagementList.c @@ -0,0 +1,115 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ServedEUTRAcellsENDCX2ManagementList.h" + +#include "NRNeighbour-Information.h" +#include "ProtocolExtensionContainer.h" +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_8231P90, + 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 */ + { 0, &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/asn1c_defs/all-defs/ServedEUTRAcellsENDCX2ManagementList.h b/asn1c_defs/all-defs/ServedEUTRAcellsENDCX2ManagementList.h new file mode 100644 index 0000000..2323129 --- /dev/null +++ b/asn1c_defs/all-defs/ServedEUTRAcellsENDCX2ManagementList.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ServedEUTRAcellsENDCX2ManagementList_H_ +#define _ServedEUTRAcellsENDCX2ManagementList_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ServedCell-Information.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ServedEUTRAcellsToDeleteListENDCConfUpd.c b/asn1c_defs/all-defs/ServedEUTRAcellsToDeleteListENDCConfUpd.c new file mode 100644 index 0000000..685304e --- /dev/null +++ b/asn1c_defs/all-defs/ServedEUTRAcellsToDeleteListENDCConfUpd.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ServedEUTRAcellsToDeleteListENDCConfUpd.h" + +#include "ECGI.h" +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 */ + { 0, &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/asn1c_defs/all-defs/ServedEUTRAcellsToDeleteListENDCConfUpd.h b/asn1c_defs/all-defs/ServedEUTRAcellsToDeleteListENDCConfUpd.h new file mode 100644 index 0000000..cb47759 --- /dev/null +++ b/asn1c_defs/all-defs/ServedEUTRAcellsToDeleteListENDCConfUpd.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ServedEUTRAcellsToDeleteListENDCConfUpd_H_ +#define _ServedEUTRAcellsToDeleteListENDCConfUpd_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ServedEUTRAcellsToModifyListENDCConfUpd.c b/asn1c_defs/all-defs/ServedEUTRAcellsToModifyListENDCConfUpd.c new file mode 100644 index 0000000..d033a9a --- /dev/null +++ b/asn1c_defs/all-defs/ServedEUTRAcellsToModifyListENDCConfUpd.c @@ -0,0 +1,125 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ServedEUTRAcellsToModifyListENDCConfUpd.h" + +#include "NRNeighbour-Information.h" +#include "ProtocolExtensionContainer.h" +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_8231P99, + 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 */ + { 0, &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/asn1c_defs/all-defs/ServedEUTRAcellsToModifyListENDCConfUpd.h b/asn1c_defs/all-defs/ServedEUTRAcellsToModifyListENDCConfUpd.h new file mode 100644 index 0000000..75f1355 --- /dev/null +++ b/asn1c_defs/all-defs/ServedEUTRAcellsToModifyListENDCConfUpd.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ServedEUTRAcellsToModifyListENDCConfUpd_H_ +#define _ServedEUTRAcellsToModifyListENDCConfUpd_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ECGI.h" +#include "ServedCell-Information.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ServedNRCell-Information.c b/asn1c_defs/all-defs/ServedNRCell-Information.c new file mode 100644 index 0000000..1548d73 --- /dev/null +++ b/asn1c_defs/all-defs/ServedNRCell-Information.c @@ -0,0 +1,179 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ServedNRCell-Information.h" + +#include "ProtocolExtensionContainer.h" +#include "FDD-InfoServedNRCell-Information.h" +#include "TDD-InfoServedNRCell-Information.h" +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) */ + { 0, &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_8231P92, + 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/asn1c_defs/all-defs/ServedNRCell-Information.h b/asn1c_defs/all-defs/ServedNRCell-Information.h new file mode 100644 index 0000000..2fe452b --- /dev/null +++ b/asn1c_defs/all-defs/ServedNRCell-Information.h @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ServedNRCell_Information_H_ +#define _ServedNRCell_Information_H_ + + +#include + +/* Including external dependencies */ +#include "NRPCI.h" +#include "NRCGI.h" +#include "FiveGS-TAC.h" +#include "TAC.h" +#include "BroadcastPLMNs-Item.h" +#include +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ServedNRCellsToActivate-Item.c b/asn1c_defs/all-defs/ServedNRCellsToActivate-Item.c new file mode 100644 index 0000000..be4b5c7 --- /dev/null +++ b/asn1c_defs/all-defs/ServedNRCellsToActivate-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P101, + 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/asn1c_defs/all-defs/ServedNRCellsToActivate-Item.h b/asn1c_defs/all-defs/ServedNRCellsToActivate-Item.h new file mode 100644 index 0000000..96d286a --- /dev/null +++ b/asn1c_defs/all-defs/ServedNRCellsToActivate-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ServedNRCellsToActivate_Item_H_ +#define _ServedNRCellsToActivate_Item_H_ + + +#include + +/* Including external dependencies */ +#include "NRCGI.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/ServedNRCellsToActivate.c b/asn1c_defs/all-defs/ServedNRCellsToActivate.c new file mode 100644 index 0000000..656fc16 --- /dev/null +++ b/asn1c_defs/all-defs/ServedNRCellsToActivate.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ServedNRCellsToActivate.h" + +#include "ServedNRCellsToActivate-Item.h" +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 */ + { 0, &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/asn1c_defs/all-defs/ServedNRCellsToActivate.h b/asn1c_defs/all-defs/ServedNRCellsToActivate.h new file mode 100644 index 0000000..8174929 --- /dev/null +++ b/asn1c_defs/all-defs/ServedNRCellsToActivate.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ServedNRCellsToActivate_H_ +#define _ServedNRCellsToActivate_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ServedNRCellsToModify-Item.c b/asn1c_defs/all-defs/ServedNRCellsToModify-Item.c new file mode 100644 index 0000000..d9be054 --- /dev/null +++ b/asn1c_defs/all-defs/ServedNRCellsToModify-Item.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P100, + 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/asn1c_defs/all-defs/ServedNRCellsToModify-Item.h b/asn1c_defs/all-defs/ServedNRCellsToModify-Item.h new file mode 100644 index 0000000..b83134e --- /dev/null +++ b/asn1c_defs/all-defs/ServedNRCellsToModify-Item.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ServedNRCellsToModify_Item_H_ +#define _ServedNRCellsToModify_Item_H_ + + +#include + +/* Including external dependencies */ +#include "NRCGI.h" +#include "ServedNRCell-Information.h" +#include "DeactivationIndication.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/ServedNRcellsENDCX2ManagementList.c b/asn1c_defs/all-defs/ServedNRcellsENDCX2ManagementList.c new file mode 100644 index 0000000..6ac9e68 --- /dev/null +++ b/asn1c_defs/all-defs/ServedNRcellsENDCX2ManagementList.c @@ -0,0 +1,115 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ServedNRcellsENDCX2ManagementList.h" + +#include "NRNeighbour-Information.h" +#include "ProtocolExtensionContainer.h" +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_8231P91, + 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 */ + { 0, &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/asn1c_defs/all-defs/ServedNRcellsENDCX2ManagementList.h b/asn1c_defs/all-defs/ServedNRcellsENDCX2ManagementList.h new file mode 100644 index 0000000..f4e8d6d --- /dev/null +++ b/asn1c_defs/all-defs/ServedNRcellsENDCX2ManagementList.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ServedNRcellsENDCX2ManagementList_H_ +#define _ServedNRcellsENDCX2ManagementList_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ServedNRCell-Information.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ServedNRcellsToDeleteENDCConfUpdList.c b/asn1c_defs/all-defs/ServedNRcellsToDeleteENDCConfUpdList.c new file mode 100644 index 0000000..cc1b242 --- /dev/null +++ b/asn1c_defs/all-defs/ServedNRcellsToDeleteENDCConfUpdList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ServedNRcellsToDeleteENDCConfUpdList.h" + +#include "NRCGI.h" +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 */ + { 0, &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/asn1c_defs/all-defs/ServedNRcellsToDeleteENDCConfUpdList.h b/asn1c_defs/all-defs/ServedNRcellsToDeleteENDCConfUpdList.h new file mode 100644 index 0000000..c1c4c5f --- /dev/null +++ b/asn1c_defs/all-defs/ServedNRcellsToDeleteENDCConfUpdList.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ServedNRcellsToDeleteENDCConfUpdList_H_ +#define _ServedNRcellsToDeleteENDCConfUpdList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ServedNRcellsToModifyENDCConfUpdList.c b/asn1c_defs/all-defs/ServedNRcellsToModifyENDCConfUpdList.c new file mode 100644 index 0000000..88722bf --- /dev/null +++ b/asn1c_defs/all-defs/ServedNRcellsToModifyENDCConfUpdList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ServedNRcellsToModifyENDCConfUpdList.h" + +#include "ServedNRCellsToModify-Item.h" +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 */ + { 0, &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/asn1c_defs/all-defs/ServedNRcellsToModifyENDCConfUpdList.h b/asn1c_defs/all-defs/ServedNRcellsToModifyENDCConfUpdList.h new file mode 100644 index 0000000..b2e06e6 --- /dev/null +++ b/asn1c_defs/all-defs/ServedNRcellsToModifyENDCConfUpdList.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ServedNRcellsToModifyENDCConfUpdList_H_ +#define _ServedNRcellsToModifyENDCConfUpdList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/ServiceType.c b/asn1c_defs/all-defs/ServiceType.c new file mode 100644 index 0000000..b39ce97 --- /dev/null +++ b/asn1c_defs/all-defs/ServiceType.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ServiceType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_ServiceType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ServiceType_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/ServiceType.h b/asn1c_defs/all-defs/ServiceType.h new file mode 100644 index 0000000..eff05f2 --- /dev/null +++ b/asn1c_defs/all-defs/ServiceType.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ServiceType_H_ +#define _ServiceType_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/SgNB-UE-X2AP-ID.c b/asn1c_defs/all-defs/SgNB-UE-X2AP-ID.c new file mode 100644 index 0000000..3b99a03 --- /dev/null +++ b/asn1c_defs/all-defs/SgNB-UE-X2AP-ID.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &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/asn1c_defs/all-defs/SgNB-UE-X2AP-ID.h b/asn1c_defs/all-defs/SgNB-UE-X2AP-ID.h new file mode 100644 index 0000000..231b57b --- /dev/null +++ b/asn1c_defs/all-defs/SgNB-UE-X2AP-ID.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SgNB_UE_X2AP_ID_H_ +#define _SgNB_UE_X2AP_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/SgNBActivityNotification.c b/asn1c_defs/all-defs/SgNBActivityNotification.c new file mode 100644 index 0000000..7535f46 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBActivityNotification.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P102, + 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/asn1c_defs/all-defs/SgNBActivityNotification.h b/asn1c_defs/all-defs/SgNBActivityNotification.h new file mode 100644 index 0000000..192e490 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBActivityNotification.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SgNBActivityNotification_H_ +#define _SgNBActivityNotification_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SgNBActivityNotification */ +typedef struct SgNBActivityNotification { + ProtocolIE_Container_8180P102_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 diff --git a/asn1c_defs/all-defs/SgNBAdditionRequest.c b/asn1c_defs/all-defs/SgNBAdditionRequest.c new file mode 100644 index 0000000..b7c6a63 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBAdditionRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P64, + 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/asn1c_defs/all-defs/SgNBAdditionRequest.h b/asn1c_defs/all-defs/SgNBAdditionRequest.h new file mode 100644 index 0000000..5668ff4 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBAdditionRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SgNBAdditionRequest_H_ +#define _SgNBAdditionRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SgNBAdditionRequest */ +typedef struct SgNBAdditionRequest { + ProtocolIE_Container_8180P64_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 diff --git a/asn1c_defs/all-defs/SgNBAdditionRequestAcknowledge.c b/asn1c_defs/all-defs/SgNBAdditionRequestAcknowledge.c new file mode 100644 index 0000000..e392d33 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBAdditionRequestAcknowledge.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P65, + 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/asn1c_defs/all-defs/SgNBAdditionRequestAcknowledge.h b/asn1c_defs/all-defs/SgNBAdditionRequestAcknowledge.h new file mode 100644 index 0000000..bd4264b --- /dev/null +++ b/asn1c_defs/all-defs/SgNBAdditionRequestAcknowledge.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SgNBAdditionRequestAcknowledge_H_ +#define _SgNBAdditionRequestAcknowledge_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SgNBAdditionRequestAcknowledge */ +typedef struct SgNBAdditionRequestAcknowledge { + ProtocolIE_Container_8180P65_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 diff --git a/asn1c_defs/all-defs/SgNBAdditionRequestReject.c b/asn1c_defs/all-defs/SgNBAdditionRequestReject.c new file mode 100644 index 0000000..e8d95b9 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBAdditionRequestReject.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P66, + 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/asn1c_defs/all-defs/SgNBAdditionRequestReject.h b/asn1c_defs/all-defs/SgNBAdditionRequestReject.h new file mode 100644 index 0000000..de08a13 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBAdditionRequestReject.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SgNBAdditionRequestReject_H_ +#define _SgNBAdditionRequestReject_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SgNBAdditionRequestReject */ +typedef struct SgNBAdditionRequestReject { + ProtocolIE_Container_8180P66_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 diff --git a/asn1c_defs/all-defs/SgNBChangeConfirm.c b/asn1c_defs/all-defs/SgNBChangeConfirm.c new file mode 100644 index 0000000..8f6191e --- /dev/null +++ b/asn1c_defs/all-defs/SgNBChangeConfirm.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P81, + 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/asn1c_defs/all-defs/SgNBChangeConfirm.h b/asn1c_defs/all-defs/SgNBChangeConfirm.h new file mode 100644 index 0000000..818bcf2 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBChangeConfirm.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SgNBChangeConfirm_H_ +#define _SgNBChangeConfirm_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SgNBChangeConfirm */ +typedef struct SgNBChangeConfirm { + ProtocolIE_Container_8180P81_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 diff --git a/asn1c_defs/all-defs/SgNBChangeRefuse.c b/asn1c_defs/all-defs/SgNBChangeRefuse.c new file mode 100644 index 0000000..d10b949 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBChangeRefuse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P83, + 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/asn1c_defs/all-defs/SgNBChangeRefuse.h b/asn1c_defs/all-defs/SgNBChangeRefuse.h new file mode 100644 index 0000000..65bb5e3 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBChangeRefuse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SgNBChangeRefuse_H_ +#define _SgNBChangeRefuse_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SgNBChangeRefuse */ +typedef struct SgNBChangeRefuse { + ProtocolIE_Container_8180P83_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 diff --git a/asn1c_defs/all-defs/SgNBChangeRequired.c b/asn1c_defs/all-defs/SgNBChangeRequired.c new file mode 100644 index 0000000..8f4bbc7 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBChangeRequired.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P80, + 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/asn1c_defs/all-defs/SgNBChangeRequired.h b/asn1c_defs/all-defs/SgNBChangeRequired.h new file mode 100644 index 0000000..b95ef4b --- /dev/null +++ b/asn1c_defs/all-defs/SgNBChangeRequired.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SgNBChangeRequired_H_ +#define _SgNBChangeRequired_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SgNBChangeRequired */ +typedef struct SgNBChangeRequired { + ProtocolIE_Container_8180P80_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 diff --git a/asn1c_defs/all-defs/SgNBCoordinationAssistanceInformation.c b/asn1c_defs/all-defs/SgNBCoordinationAssistanceInformation.c new file mode 100644 index 0000000..8300b8c --- /dev/null +++ b/asn1c_defs/all-defs/SgNBCoordinationAssistanceInformation.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "SgNBCoordinationAssistanceInformation.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_SgNBCoordinationAssistanceInformation_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SgNBCoordinationAssistanceInformation_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/SgNBCoordinationAssistanceInformation.h b/asn1c_defs/all-defs/SgNBCoordinationAssistanceInformation.h new file mode 100644 index 0000000..d9d1e41 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBCoordinationAssistanceInformation.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SgNBCoordinationAssistanceInformation_H_ +#define _SgNBCoordinationAssistanceInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/SgNBCounterCheckRequest.c b/asn1c_defs/all-defs/SgNBCounterCheckRequest.c new file mode 100644 index 0000000..ef7831a --- /dev/null +++ b/asn1c_defs/all-defs/SgNBCounterCheckRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P79, + 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/asn1c_defs/all-defs/SgNBCounterCheckRequest.h b/asn1c_defs/all-defs/SgNBCounterCheckRequest.h new file mode 100644 index 0000000..f634b7c --- /dev/null +++ b/asn1c_defs/all-defs/SgNBCounterCheckRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SgNBCounterCheckRequest_H_ +#define _SgNBCounterCheckRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SgNBCounterCheckRequest */ +typedef struct SgNBCounterCheckRequest { + ProtocolIE_Container_8180P79_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 diff --git a/asn1c_defs/all-defs/SgNBModificationConfirm.c b/asn1c_defs/all-defs/SgNBModificationConfirm.c new file mode 100644 index 0000000..41d885c --- /dev/null +++ b/asn1c_defs/all-defs/SgNBModificationConfirm.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P72, + 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/asn1c_defs/all-defs/SgNBModificationConfirm.h b/asn1c_defs/all-defs/SgNBModificationConfirm.h new file mode 100644 index 0000000..44f2474 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBModificationConfirm.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SgNBModificationConfirm_H_ +#define _SgNBModificationConfirm_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SgNBModificationConfirm */ +typedef struct SgNBModificationConfirm { + ProtocolIE_Container_8180P72_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 diff --git a/asn1c_defs/all-defs/SgNBModificationRefuse.c b/asn1c_defs/all-defs/SgNBModificationRefuse.c new file mode 100644 index 0000000..083ac62 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBModificationRefuse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P73, + 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/asn1c_defs/all-defs/SgNBModificationRefuse.h b/asn1c_defs/all-defs/SgNBModificationRefuse.h new file mode 100644 index 0000000..bc8d039 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBModificationRefuse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SgNBModificationRefuse_H_ +#define _SgNBModificationRefuse_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SgNBModificationRefuse */ +typedef struct SgNBModificationRefuse { + ProtocolIE_Container_8180P73_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 diff --git a/asn1c_defs/all-defs/SgNBModificationRequest.c b/asn1c_defs/all-defs/SgNBModificationRequest.c new file mode 100644 index 0000000..2dd997d --- /dev/null +++ b/asn1c_defs/all-defs/SgNBModificationRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P68, + 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/asn1c_defs/all-defs/SgNBModificationRequest.h b/asn1c_defs/all-defs/SgNBModificationRequest.h new file mode 100644 index 0000000..b3ceb32 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBModificationRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SgNBModificationRequest_H_ +#define _SgNBModificationRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SgNBModificationRequest */ +typedef struct SgNBModificationRequest { + ProtocolIE_Container_8180P68_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 diff --git a/asn1c_defs/all-defs/SgNBModificationRequestAcknowledge.c b/asn1c_defs/all-defs/SgNBModificationRequestAcknowledge.c new file mode 100644 index 0000000..1a7ac93 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBModificationRequestAcknowledge.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P69, + 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/asn1c_defs/all-defs/SgNBModificationRequestAcknowledge.h b/asn1c_defs/all-defs/SgNBModificationRequestAcknowledge.h new file mode 100644 index 0000000..13d65fb --- /dev/null +++ b/asn1c_defs/all-defs/SgNBModificationRequestAcknowledge.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SgNBModificationRequestAcknowledge_H_ +#define _SgNBModificationRequestAcknowledge_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SgNBModificationRequestAcknowledge */ +typedef struct SgNBModificationRequestAcknowledge { + ProtocolIE_Container_8180P69_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 diff --git a/asn1c_defs/all-defs/SgNBModificationRequestReject.c b/asn1c_defs/all-defs/SgNBModificationRequestReject.c new file mode 100644 index 0000000..5a36905 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBModificationRequestReject.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P70, + 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/asn1c_defs/all-defs/SgNBModificationRequestReject.h b/asn1c_defs/all-defs/SgNBModificationRequestReject.h new file mode 100644 index 0000000..5796d24 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBModificationRequestReject.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SgNBModificationRequestReject_H_ +#define _SgNBModificationRequestReject_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SgNBModificationRequestReject */ +typedef struct SgNBModificationRequestReject { + ProtocolIE_Container_8180P70_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 diff --git a/asn1c_defs/all-defs/SgNBModificationRequired.c b/asn1c_defs/all-defs/SgNBModificationRequired.c new file mode 100644 index 0000000..8dfcb02 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBModificationRequired.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P71, + 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/asn1c_defs/all-defs/SgNBModificationRequired.h b/asn1c_defs/all-defs/SgNBModificationRequired.h new file mode 100644 index 0000000..b90834a --- /dev/null +++ b/asn1c_defs/all-defs/SgNBModificationRequired.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SgNBModificationRequired_H_ +#define _SgNBModificationRequired_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SgNBModificationRequired */ +typedef struct SgNBModificationRequired { + ProtocolIE_Container_8180P71_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 diff --git a/asn1c_defs/all-defs/SgNBReconfigurationComplete.c b/asn1c_defs/all-defs/SgNBReconfigurationComplete.c new file mode 100644 index 0000000..8153e1c --- /dev/null +++ b/asn1c_defs/all-defs/SgNBReconfigurationComplete.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P67, + 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/asn1c_defs/all-defs/SgNBReconfigurationComplete.h b/asn1c_defs/all-defs/SgNBReconfigurationComplete.h new file mode 100644 index 0000000..f1c8214 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBReconfigurationComplete.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SgNBReconfigurationComplete_H_ +#define _SgNBReconfigurationComplete_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SgNBReconfigurationComplete */ +typedef struct SgNBReconfigurationComplete { + ProtocolIE_Container_8180P67_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 diff --git a/asn1c_defs/all-defs/SgNBReleaseConfirm.c b/asn1c_defs/all-defs/SgNBReleaseConfirm.c new file mode 100644 index 0000000..faf22f5 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBReleaseConfirm.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P78, + 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/asn1c_defs/all-defs/SgNBReleaseConfirm.h b/asn1c_defs/all-defs/SgNBReleaseConfirm.h new file mode 100644 index 0000000..6e0e260 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBReleaseConfirm.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SgNBReleaseConfirm_H_ +#define _SgNBReleaseConfirm_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SgNBReleaseConfirm */ +typedef struct SgNBReleaseConfirm { + ProtocolIE_Container_8180P78_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 diff --git a/asn1c_defs/all-defs/SgNBReleaseRequest.c b/asn1c_defs/all-defs/SgNBReleaseRequest.c new file mode 100644 index 0000000..5e16c7a --- /dev/null +++ b/asn1c_defs/all-defs/SgNBReleaseRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P74, + 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/asn1c_defs/all-defs/SgNBReleaseRequest.h b/asn1c_defs/all-defs/SgNBReleaseRequest.h new file mode 100644 index 0000000..569fbaa --- /dev/null +++ b/asn1c_defs/all-defs/SgNBReleaseRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SgNBReleaseRequest_H_ +#define _SgNBReleaseRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SgNBReleaseRequest */ +typedef struct SgNBReleaseRequest { + ProtocolIE_Container_8180P74_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 diff --git a/asn1c_defs/all-defs/SgNBReleaseRequestAcknowledge.c b/asn1c_defs/all-defs/SgNBReleaseRequestAcknowledge.c new file mode 100644 index 0000000..5d66275 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBReleaseRequestAcknowledge.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P75, + 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/asn1c_defs/all-defs/SgNBReleaseRequestAcknowledge.h b/asn1c_defs/all-defs/SgNBReleaseRequestAcknowledge.h new file mode 100644 index 0000000..83df5da --- /dev/null +++ b/asn1c_defs/all-defs/SgNBReleaseRequestAcknowledge.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SgNBReleaseRequestAcknowledge_H_ +#define _SgNBReleaseRequestAcknowledge_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SgNBReleaseRequestAcknowledge */ +typedef struct SgNBReleaseRequestAcknowledge { + ProtocolIE_Container_8180P75_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 diff --git a/asn1c_defs/all-defs/SgNBReleaseRequestReject.c b/asn1c_defs/all-defs/SgNBReleaseRequestReject.c new file mode 100644 index 0000000..2a65857 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBReleaseRequestReject.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P76, + 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/asn1c_defs/all-defs/SgNBReleaseRequestReject.h b/asn1c_defs/all-defs/SgNBReleaseRequestReject.h new file mode 100644 index 0000000..fa0cdb4 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBReleaseRequestReject.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SgNBReleaseRequestReject_H_ +#define _SgNBReleaseRequestReject_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SgNBReleaseRequestReject */ +typedef struct SgNBReleaseRequestReject { + ProtocolIE_Container_8180P76_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 diff --git a/asn1c_defs/all-defs/SgNBReleaseRequired.c b/asn1c_defs/all-defs/SgNBReleaseRequired.c new file mode 100644 index 0000000..6135fe8 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBReleaseRequired.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P77, + 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/asn1c_defs/all-defs/SgNBReleaseRequired.h b/asn1c_defs/all-defs/SgNBReleaseRequired.h new file mode 100644 index 0000000..6a67135 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBReleaseRequired.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SgNBReleaseRequired_H_ +#define _SgNBReleaseRequired_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SgNBReleaseRequired */ +typedef struct SgNBReleaseRequired { + ProtocolIE_Container_8180P77_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 diff --git a/asn1c_defs/all-defs/SgNBResourceCoordinationInformation.c b/asn1c_defs/all-defs/SgNBResourceCoordinationInformation.c new file mode 100644 index 0000000..180d862 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBResourceCoordinationInformation.c @@ -0,0 +1,155 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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, + { 0, &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, + { 0, &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_8231P193, + 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/asn1c_defs/all-defs/SgNBResourceCoordinationInformation.h b/asn1c_defs/all-defs/SgNBResourceCoordinationInformation.h new file mode 100644 index 0000000..2b37dac --- /dev/null +++ b/asn1c_defs/all-defs/SgNBResourceCoordinationInformation.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SgNBResourceCoordinationInformation_H_ +#define _SgNBResourceCoordinationInformation_H_ + + +#include + +/* Including external dependencies */ +#include "NRCGI.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/SgNBSecurityKey.c b/asn1c_defs/all-defs/SgNBSecurityKey.c new file mode 100644 index 0000000..d85d2d7 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBSecurityKey.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_SgNBSecurityKey_constr_1, SgNBSecurityKey_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/SgNBSecurityKey.h b/asn1c_defs/all-defs/SgNBSecurityKey.h new file mode 100644 index 0000000..17296fb --- /dev/null +++ b/asn1c_defs/all-defs/SgNBSecurityKey.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SgNBSecurityKey_H_ +#define _SgNBSecurityKey_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/SgNBtoMeNBContainer.c b/asn1c_defs/all-defs/SgNBtoMeNBContainer.c new file mode 100644 index 0000000..ffe8217 --- /dev/null +++ b/asn1c_defs/all-defs/SgNBtoMeNBContainer.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/SgNBtoMeNBContainer.h b/asn1c_defs/all-defs/SgNBtoMeNBContainer.h new file mode 100644 index 0000000..865acdf --- /dev/null +++ b/asn1c_defs/all-defs/SgNBtoMeNBContainer.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SgNBtoMeNBContainer_H_ +#define _SgNBtoMeNBContainer_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/SharedResourceType.c b/asn1c_defs/all-defs/SharedResourceType.c new file mode 100644 index 0000000..3542f8b --- /dev/null +++ b/asn1c_defs/all-defs/SharedResourceType.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "SharedResourceType.h" + +#include "ULOnlySharing.h" +#include "ULandDLSharing.h" +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) */ + { 0, &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/asn1c_defs/all-defs/SharedResourceType.h b/asn1c_defs/all-defs/SharedResourceType.h new file mode 100644 index 0000000..420a529 --- /dev/null +++ b/asn1c_defs/all-defs/SharedResourceType.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SharedResourceType_H_ +#define _SharedResourceType_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/ShortMAC-I.c b/asn1c_defs/all-defs/ShortMAC-I.c new file mode 100644 index 0000000..cc8a27a --- /dev/null +++ b/asn1c_defs/all-defs/ShortMAC-I.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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 */ + { 0, &asn_PER_type_ShortMAC_I_constr_1, ShortMAC_I_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/ShortMAC-I.h b/asn1c_defs/all-defs/ShortMAC-I.h new file mode 100644 index 0000000..d956c56 --- /dev/null +++ b/asn1c_defs/all-defs/ShortMAC-I.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ShortMAC_I_H_ +#define _ShortMAC_I_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/SourceOfUEActivityBehaviourInformation.c b/asn1c_defs/all-defs/SourceOfUEActivityBehaviourInformation.c new file mode 100644 index 0000000..3c36ee4 --- /dev/null +++ b/asn1c_defs/all-defs/SourceOfUEActivityBehaviourInformation.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "SourceOfUEActivityBehaviourInformation.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_SourceOfUEActivityBehaviourInformation_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SourceOfUEActivityBehaviourInformation_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/SourceOfUEActivityBehaviourInformation.h b/asn1c_defs/all-defs/SourceOfUEActivityBehaviourInformation.h new file mode 100644 index 0000000..df2c57c --- /dev/null +++ b/asn1c_defs/all-defs/SourceOfUEActivityBehaviourInformation.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SourceOfUEActivityBehaviourInformation_H_ +#define _SourceOfUEActivityBehaviourInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/SpecialSubframe-Info.c b/asn1c_defs/all-defs/SpecialSubframe-Info.c new file mode 100644 index 0000000..166316e --- /dev/null +++ b/asn1c_defs/all-defs/SpecialSubframe-Info.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P194, + 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/asn1c_defs/all-defs/SpecialSubframe-Info.h b/asn1c_defs/all-defs/SpecialSubframe-Info.h new file mode 100644 index 0000000..cf91834 --- /dev/null +++ b/asn1c_defs/all-defs/SpecialSubframe-Info.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SpecialSubframe_Info_H_ +#define _SpecialSubframe_Info_H_ + + +#include + +/* Including external dependencies */ +#include "SpecialSubframePatterns.h" +#include "CyclicPrefixDL.h" +#include "CyclicPrefixUL.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/SpecialSubframePatterns.c b/asn1c_defs/all-defs/SpecialSubframePatterns.c new file mode 100644 index 0000000..d8fa23b --- /dev/null +++ b/asn1c_defs/all-defs/SpecialSubframePatterns.c @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "SpecialSubframePatterns.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_SpecialSubframePatterns_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SpecialSubframePatterns_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/SpecialSubframePatterns.h b/asn1c_defs/all-defs/SpecialSubframePatterns.h new file mode 100644 index 0000000..4963f94 --- /dev/null +++ b/asn1c_defs/all-defs/SpecialSubframePatterns.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SpecialSubframePatterns_H_ +#define _SpecialSubframePatterns_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/SpectrumSharingGroupID.c b/asn1c_defs/all-defs/SpectrumSharingGroupID.c new file mode 100644 index 0000000..29f6d7c --- /dev/null +++ b/asn1c_defs/all-defs/SpectrumSharingGroupID.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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 */ + { 0, &asn_PER_type_SpectrumSharingGroupID_constr_1, SpectrumSharingGroupID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/SpectrumSharingGroupID.h b/asn1c_defs/all-defs/SpectrumSharingGroupID.h new file mode 100644 index 0000000..59dd267 --- /dev/null +++ b/asn1c_defs/all-defs/SpectrumSharingGroupID.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SpectrumSharingGroupID_H_ +#define _SpectrumSharingGroupID_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/SplitSRB.c b/asn1c_defs/all-defs/SplitSRB.c new file mode 100644 index 0000000..18c01bb --- /dev/null +++ b/asn1c_defs/all-defs/SplitSRB.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P170, + 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/asn1c_defs/all-defs/SplitSRB.h b/asn1c_defs/all-defs/SplitSRB.h new file mode 100644 index 0000000..01fd2b2 --- /dev/null +++ b/asn1c_defs/all-defs/SplitSRB.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SplitSRB_H_ +#define _SplitSRB_H_ + + +#include + +/* Including external dependencies */ +#include "RRCContainer.h" +#include "SRBType.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/SplitSRBs.c b/asn1c_defs/all-defs/SplitSRBs.c new file mode 100644 index 0000000..1b948e8 --- /dev/null +++ b/asn1c_defs/all-defs/SplitSRBs.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "SplitSRBs.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_SplitSRBs_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SplitSRBs_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/SplitSRBs.h b/asn1c_defs/all-defs/SplitSRBs.h new file mode 100644 index 0000000..ec981e0 --- /dev/null +++ b/asn1c_defs/all-defs/SplitSRBs.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SplitSRBs_H_ +#define _SplitSRBs_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/Style-ID.c b/asn1c_defs/all-defs/Style-ID.c new file mode 100644 index 0000000..e7c44c0 --- /dev/null +++ b/asn1c_defs/all-defs/Style-ID.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/Style-ID.h b/asn1c_defs/all-defs/Style-ID.h new file mode 100644 index 0000000..84d381d --- /dev/null +++ b/asn1c_defs/all-defs/Style-ID.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _Style_ID_H_ +#define _Style_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/SubbandCQI.c b/asn1c_defs/all-defs/SubbandCQI.c new file mode 100644 index 0000000..622a30b --- /dev/null +++ b/asn1c_defs/all-defs/SubbandCQI.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P195, + 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/asn1c_defs/all-defs/SubbandCQI.h b/asn1c_defs/all-defs/SubbandCQI.h new file mode 100644 index 0000000..9f6e56e --- /dev/null +++ b/asn1c_defs/all-defs/SubbandCQI.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SubbandCQI_H_ +#define _SubbandCQI_H_ + + +#include + +/* Including external dependencies */ +#include "SubbandCQICodeword0.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/SubbandCQICodeword0.c b/asn1c_defs/all-defs/SubbandCQICodeword0.c new file mode 100644 index 0000000..8258201 --- /dev/null +++ b/asn1c_defs/all-defs/SubbandCQICodeword0.c @@ -0,0 +1,162 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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_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 */ +}; +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, + { 0, &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, + { 0, &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, + { 0, &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) */ + { 0, &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/asn1c_defs/all-defs/SubbandCQICodeword0.h b/asn1c_defs/all-defs/SubbandCQICodeword0.h new file mode 100644 index 0000000..8714a6a --- /dev/null +++ b/asn1c_defs/all-defs/SubbandCQICodeword0.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SubbandCQICodeword0_H_ +#define _SubbandCQICodeword0_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/SubbandCQICodeword1.c b/asn1c_defs/all-defs/SubbandCQICodeword1.c new file mode 100644 index 0000000..588b6ae --- /dev/null +++ b/asn1c_defs/all-defs/SubbandCQICodeword1.c @@ -0,0 +1,202 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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_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_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 */ +}; +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, + { 0, &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, + { 0, &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, + { 0, &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, + { 0, &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) */ + { 0, &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/asn1c_defs/all-defs/SubbandCQICodeword1.h b/asn1c_defs/all-defs/SubbandCQICodeword1.h new file mode 100644 index 0000000..ddd611f --- /dev/null +++ b/asn1c_defs/all-defs/SubbandCQICodeword1.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SubbandCQICodeword1_H_ +#define _SubbandCQICodeword1_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/SubbandCQIItem.c b/asn1c_defs/all-defs/SubbandCQIItem.c new file mode 100644 index 0000000..b469117 --- /dev/null +++ b/asn1c_defs/all-defs/SubbandCQIItem.c @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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, + { 0, &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_8231P198, + 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/asn1c_defs/all-defs/SubbandCQIItem.h b/asn1c_defs/all-defs/SubbandCQIItem.h new file mode 100644 index 0000000..52c77e4 --- /dev/null +++ b/asn1c_defs/all-defs/SubbandCQIItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SubbandCQIItem_H_ +#define _SubbandCQIItem_H_ + + +#include + +/* Including external dependencies */ +#include "SubbandCQI.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/SubbandCQIList.c b/asn1c_defs/all-defs/SubbandCQIList.c new file mode 100644 index 0000000..4e4ac8e --- /dev/null +++ b/asn1c_defs/all-defs/SubbandCQIList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "SubbandCQIList.h" + +#include "SubbandCQIItem.h" +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 */ + { 0, &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/asn1c_defs/all-defs/SubbandCQIList.h b/asn1c_defs/all-defs/SubbandCQIList.h new file mode 100644 index 0000000..42473a2 --- /dev/null +++ b/asn1c_defs/all-defs/SubbandCQIList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SubbandCQIList_H_ +#define _SubbandCQIList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/SubbandSize.c b/asn1c_defs/all-defs/SubbandSize.c new file mode 100644 index 0000000..6e8d0f3 --- /dev/null +++ b/asn1c_defs/all-defs/SubbandSize.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "SubbandSize.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_SubbandSize_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SubbandSize_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/SubbandSize.h b/asn1c_defs/all-defs/SubbandSize.h new file mode 100644 index 0000000..b23c264 --- /dev/null +++ b/asn1c_defs/all-defs/SubbandSize.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SubbandSize_H_ +#define _SubbandSize_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/SubframeAllocation.c b/asn1c_defs/all-defs/SubframeAllocation.c new file mode 100644 index 0000000..7f0c444 --- /dev/null +++ b/asn1c_defs/all-defs/SubframeAllocation.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "SubframeAllocation.h" + +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) */ + { 0, &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/asn1c_defs/all-defs/SubframeAllocation.h b/asn1c_defs/all-defs/SubframeAllocation.h new file mode 100644 index 0000000..6d7fd56 --- /dev/null +++ b/asn1c_defs/all-defs/SubframeAllocation.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SubframeAllocation_H_ +#define _SubframeAllocation_H_ + + +#include + +/* Including external dependencies */ +#include "Oneframe.h" +#include "Fourframes.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/SubframeAssignment.c b/asn1c_defs/all-defs/SubframeAssignment.c new file mode 100644 index 0000000..b7fa324 --- /dev/null +++ b/asn1c_defs/all-defs/SubframeAssignment.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "SubframeAssignment.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_SubframeAssignment_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SubframeAssignment_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/SubframeAssignment.h b/asn1c_defs/all-defs/SubframeAssignment.h new file mode 100644 index 0000000..9afee39 --- /dev/null +++ b/asn1c_defs/all-defs/SubframeAssignment.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SubframeAssignment_H_ +#define _SubframeAssignment_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/SubframeType.c b/asn1c_defs/all-defs/SubframeType.c new file mode 100644 index 0000000..60b8a6e --- /dev/null +++ b/asn1c_defs/all-defs/SubframeType.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "SubframeType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_SubframeType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SubframeType_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/SubframeType.h b/asn1c_defs/all-defs/SubframeType.h new file mode 100644 index 0000000..e4a2925 --- /dev/null +++ b/asn1c_defs/all-defs/SubframeType.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SubframeType_H_ +#define _SubframeType_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/SubscriberProfileIDforRFP.c b/asn1c_defs/all-defs/SubscriberProfileIDforRFP.c new file mode 100644 index 0000000..16df5c8 --- /dev/null +++ b/asn1c_defs/all-defs/SubscriberProfileIDforRFP.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_SubscriberProfileIDforRFP_constr_1, SubscriberProfileIDforRFP_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/SubscriberProfileIDforRFP.h b/asn1c_defs/all-defs/SubscriberProfileIDforRFP.h new file mode 100644 index 0000000..592b001 --- /dev/null +++ b/asn1c_defs/all-defs/SubscriberProfileIDforRFP.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SubscriberProfileIDforRFP_H_ +#define _SubscriberProfileIDforRFP_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/Subscription-Based-UE-DifferentiationInfo.c b/asn1c_defs/all-defs/Subscription-Based-UE-DifferentiationInfo.c new file mode 100644 index 0000000..f0b7bc3 --- /dev/null +++ b/asn1c_defs/all-defs/Subscription-Based-UE-DifferentiationInfo.c @@ -0,0 +1,340 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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_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_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_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 */ + { 0, &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 */ + { 0, &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 */ + { 0, &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 */ + { 0, &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, + { 0, &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_8231P196, + 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/asn1c_defs/all-defs/Subscription-Based-UE-DifferentiationInfo.h b/asn1c_defs/all-defs/Subscription-Based-UE-DifferentiationInfo.h new file mode 100644 index 0000000..fcc0e6f --- /dev/null +++ b/asn1c_defs/all-defs/Subscription-Based-UE-DifferentiationInfo.h @@ -0,0 +1,89 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _Subscription_Based_UE_DifferentiationInfo_H_ +#define _Subscription_Based_UE_DifferentiationInfo_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/SuccessfulOutcome.c b/asn1c_defs/all-defs/SuccessfulOutcome.c new file mode 100644 index 0000000..d9b7080 --- /dev/null +++ b/asn1c_defs/all-defs/SuccessfulOutcome.c @@ -0,0 +1,448 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Descriptions" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "SuccessfulOutcome.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_x2Setup = 6; +static const long asn_VAL_5_reject = 0; +static const long asn_VAL_6_id_endcX2Setup = 36; +static const long asn_VAL_6_reject = 0; +static const long asn_VAL_7_id_resourceStatusReportingInitiation = 9; +static const long asn_VAL_7_reject = 0; +static const long asn_VAL_8_id_eNBConfigurationUpdate = 8; +static const long asn_VAL_8_reject = 0; +static const long asn_VAL_9_id_endcConfigurationUpdate = 37; +static const long asn_VAL_9_reject = 0; +static const long asn_VAL_10_id_reset = 7; +static const long asn_VAL_10_reject = 0; +static const long asn_VAL_11_id_ricIndication = 205; +static const long asn_VAL_11_ignore = 1; +static const long asn_VAL_12_id_ricServiceQuery = 206; +static const long asn_VAL_12_ignore = 1; +static const long asn_VAL_13_id_loadIndication = 2; +static const long asn_VAL_13_ignore = 1; +static const long asn_VAL_14_id_gNBStatusIndication = 45; +static const long asn_VAL_14_ignore = 1; +static const long asn_VAL_15_id_resourceStatusReporting = 10; +static const long asn_VAL_15_ignore = 1; +static const long asn_VAL_16_id_errorIndication = 3; +static const long asn_VAL_16_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_X2SetupRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_X2SetupResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_X2SetupFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_x2Setup }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_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_6_id_endcX2Setup }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_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_7_id_resourceStatusReportingInitiation }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_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_8_id_eNBConfigurationUpdate }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_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_9_id_endcConfigurationUpdate }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_10_id_reset }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICindication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_ricIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_12_id_ricServiceQuery }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_LoadInformation }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_13_id_loadIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_GNBStatusIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_14_id_gNBStatusIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ResourceStatusUpdate }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_15_id_resourceStatusReporting }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_15_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_16_id_errorIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_16_ignore } +}; +static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { + { 16, 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_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_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 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_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 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_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_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_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.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 SuccessfulOutcome__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 SuccessfulOutcome__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 SuccessfulOutcome__value, choice.RICcontrolAcknowledge), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICcontrolAcknowledge, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICcontrolAcknowledge" + }, + { 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.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.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.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.ResetResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ResetResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ResetResponse" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 9 }, /* RICsubscriptionResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 8 }, /* RICsubscriptionDeleteResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 7 }, /* RICserviceUpdateAcknowledge */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 6 }, /* RICcontrolAcknowledge */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 5 }, /* X2SetupResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 4 }, /* ENDCX2SetupResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 3 }, /* ResourceStatusResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -7, 2 }, /* ENBConfigurationUpdateAcknowledge */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -8, 1 }, /* ENDCConfigurationUpdateAcknowledge */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -9, 0 } /* ResetResponse */ +}; +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, + 10, /* 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, + 10, /* 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, + { 0, &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, + { 0, &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, + { 0, &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/asn1c_defs/all-defs/SuccessfulOutcome.h b/asn1c_defs/all-defs/SuccessfulOutcome.h new file mode 100644 index 0000000..e1bcfa3 --- /dev/null +++ b/asn1c_defs/all-defs/SuccessfulOutcome.h @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Descriptions" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SuccessfulOutcome_H_ +#define _SuccessfulOutcome_H_ + + +#include + +/* Including external dependencies */ +#include "ProcedureCode.h" +#include "Criticality.h" +#include +#include +#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 "X2SetupRequest.h" +#include "X2SetupResponse.h" +#include "X2SetupFailure.h" +#include "ENDCX2SetupRequest.h" +#include "ENDCX2SetupResponse.h" +#include "ENDCX2SetupFailure.h" +#include "ResourceStatusRequest.h" +#include "ResourceStatusResponse.h" +#include "ResourceStatusFailure.h" +#include "ENBConfigurationUpdate.h" +#include "ENBConfigurationUpdateAcknowledge.h" +#include "ENBConfigurationUpdateFailure.h" +#include "ENDCConfigurationUpdate.h" +#include "ENDCConfigurationUpdateAcknowledge.h" +#include "ENDCConfigurationUpdateFailure.h" +#include "ResetRequest.h" +#include "ResetResponse.h" +#include "RICindication.h" +#include "RICserviceQuery.h" +#include "LoadInformation.h" +#include "GNBStatusIndication.h" +#include "ResourceStatusUpdate.h" +#include "ErrorIndication.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SuccessfulOutcome__value_PR { + SuccessfulOutcome__value_PR_NOTHING, /* No components present */ + SuccessfulOutcome__value_PR_RICsubscriptionResponse, + SuccessfulOutcome__value_PR_RICsubscriptionDeleteResponse, + SuccessfulOutcome__value_PR_RICserviceUpdateAcknowledge, + SuccessfulOutcome__value_PR_RICcontrolAcknowledge, + SuccessfulOutcome__value_PR_X2SetupResponse, + SuccessfulOutcome__value_PR_ENDCX2SetupResponse, + SuccessfulOutcome__value_PR_ResourceStatusResponse, + SuccessfulOutcome__value_PR_ENBConfigurationUpdateAcknowledge, + SuccessfulOutcome__value_PR_ENDCConfigurationUpdateAcknowledge, + SuccessfulOutcome__value_PR_ResetResponse +} SuccessfulOutcome__value_PR; + +/* SuccessfulOutcome */ +typedef struct SuccessfulOutcome { + ProcedureCode_t procedureCode; + Criticality_t criticality; + struct SuccessfulOutcome__value { + SuccessfulOutcome__value_PR present; + union SuccessfulOutcome__value_u { + RICsubscriptionResponse_t RICsubscriptionResponse; + RICsubscriptionDeleteResponse_t RICsubscriptionDeleteResponse; + RICserviceUpdateAcknowledge_t RICserviceUpdateAcknowledge; + RICcontrolAcknowledge_t RICcontrolAcknowledge; + X2SetupResponse_t X2SetupResponse; + ENDCX2SetupResponse_t ENDCX2SetupResponse; + ResourceStatusResponse_t ResourceStatusResponse; + ENBConfigurationUpdateAcknowledge_t ENBConfigurationUpdateAcknowledge; + ENDCConfigurationUpdateAcknowledge_t ENDCConfigurationUpdateAcknowledge; + ResetResponse_t ResetResponse; + } 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 diff --git a/asn1c_defs/all-defs/SupportedSULFreqBandItem.c b/asn1c_defs/all-defs/SupportedSULFreqBandItem.c new file mode 100644 index 0000000..9d2686e --- /dev/null +++ b/asn1c_defs/all-defs/SupportedSULFreqBandItem.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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, + { 0, &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_8231P200, + 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/asn1c_defs/all-defs/SupportedSULFreqBandItem.h b/asn1c_defs/all-defs/SupportedSULFreqBandItem.h new file mode 100644 index 0000000..bc6a43d --- /dev/null +++ b/asn1c_defs/all-defs/SupportedSULFreqBandItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _SupportedSULFreqBandItem_H_ +#define _SupportedSULFreqBandItem_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/TABasedMDT.c b/asn1c_defs/all-defs/TABasedMDT.c new file mode 100644 index 0000000..6b41bec --- /dev/null +++ b/asn1c_defs/all-defs/TABasedMDT.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P201, + 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/asn1c_defs/all-defs/TABasedMDT.h b/asn1c_defs/all-defs/TABasedMDT.h new file mode 100644 index 0000000..5d6dd66 --- /dev/null +++ b/asn1c_defs/all-defs/TABasedMDT.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _TABasedMDT_H_ +#define _TABasedMDT_H_ + + +#include + +/* Including external dependencies */ +#include "TAListforMDT.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/TABasedQMC.c b/asn1c_defs/all-defs/TABasedQMC.c new file mode 100644 index 0000000..2fc8dd4 --- /dev/null +++ b/asn1c_defs/all-defs/TABasedQMC.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P204, + 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/asn1c_defs/all-defs/TABasedQMC.h b/asn1c_defs/all-defs/TABasedQMC.h new file mode 100644 index 0000000..ecf0f52 --- /dev/null +++ b/asn1c_defs/all-defs/TABasedQMC.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _TABasedQMC_H_ +#define _TABasedQMC_H_ + + +#include + +/* Including external dependencies */ +#include "TAListforQMC.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/TAC.c b/asn1c_defs/all-defs/TAC.c new file mode 100644 index 0000000..96b6a81 --- /dev/null +++ b/asn1c_defs/all-defs/TAC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_TAC_constr_1, TAC_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/TAC.h b/asn1c_defs/all-defs/TAC.h new file mode 100644 index 0000000..d352764 --- /dev/null +++ b/asn1c_defs/all-defs/TAC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _TAC_H_ +#define _TAC_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/TAI-Item.c b/asn1c_defs/all-defs/TAI-Item.c new file mode 100644 index 0000000..33ad9d8 --- /dev/null +++ b/asn1c_defs/all-defs/TAI-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P203, + 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/asn1c_defs/all-defs/TAI-Item.h b/asn1c_defs/all-defs/TAI-Item.h new file mode 100644 index 0000000..9e3aec8 --- /dev/null +++ b/asn1c_defs/all-defs/TAI-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _TAI_Item_H_ +#define _TAI_Item_H_ + + +#include + +/* Including external dependencies */ +#include "TAC.h" +#include "PLMN-Identity.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/TAIBasedMDT.c b/asn1c_defs/all-defs/TAIBasedMDT.c new file mode 100644 index 0000000..045b2ee --- /dev/null +++ b/asn1c_defs/all-defs/TAIBasedMDT.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P202, + 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/asn1c_defs/all-defs/TAIBasedMDT.h b/asn1c_defs/all-defs/TAIBasedMDT.h new file mode 100644 index 0000000..dda37da --- /dev/null +++ b/asn1c_defs/all-defs/TAIBasedMDT.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _TAIBasedMDT_H_ +#define _TAIBasedMDT_H_ + + +#include + +/* Including external dependencies */ +#include "TAIListforMDT.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/TAIBasedQMC.c b/asn1c_defs/all-defs/TAIBasedQMC.c new file mode 100644 index 0000000..d62fb0d --- /dev/null +++ b/asn1c_defs/all-defs/TAIBasedQMC.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P205, + 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/asn1c_defs/all-defs/TAIBasedQMC.h b/asn1c_defs/all-defs/TAIBasedQMC.h new file mode 100644 index 0000000..b9979ac --- /dev/null +++ b/asn1c_defs/all-defs/TAIBasedQMC.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _TAIBasedQMC_H_ +#define _TAIBasedQMC_H_ + + +#include + +/* Including external dependencies */ +#include "TAIListforQMC.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/TAIListforMDT.c b/asn1c_defs/all-defs/TAIListforMDT.c new file mode 100644 index 0000000..7386728 --- /dev/null +++ b/asn1c_defs/all-defs/TAIListforMDT.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "TAIListforMDT.h" + +#include "TAI-Item.h" +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 */ + { 0, &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/asn1c_defs/all-defs/TAIListforMDT.h b/asn1c_defs/all-defs/TAIListforMDT.h new file mode 100644 index 0000000..8608ccc --- /dev/null +++ b/asn1c_defs/all-defs/TAIListforMDT.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _TAIListforMDT_H_ +#define _TAIListforMDT_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/TAIListforQMC.c b/asn1c_defs/all-defs/TAIListforQMC.c new file mode 100644 index 0000000..6767e68 --- /dev/null +++ b/asn1c_defs/all-defs/TAIListforQMC.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "TAIListforQMC.h" + +#include "TAI-Item.h" +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 */ + { 0, &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/asn1c_defs/all-defs/TAIListforQMC.h b/asn1c_defs/all-defs/TAIListforQMC.h new file mode 100644 index 0000000..c1d9c98 --- /dev/null +++ b/asn1c_defs/all-defs/TAIListforQMC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _TAIListforQMC_H_ +#define _TAIListforQMC_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/TAListforMDT.c b/asn1c_defs/all-defs/TAListforMDT.c new file mode 100644 index 0000000..eaeeb2b --- /dev/null +++ b/asn1c_defs/all-defs/TAListforMDT.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "TAListforMDT.h" + +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 */ + { 0, &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/asn1c_defs/all-defs/TAListforMDT.h b/asn1c_defs/all-defs/TAListforMDT.h new file mode 100644 index 0000000..eb1abbb --- /dev/null +++ b/asn1c_defs/all-defs/TAListforMDT.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _TAListforMDT_H_ +#define _TAListforMDT_H_ + + +#include + +/* Including external dependencies */ +#include "TAC.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/TAListforQMC.c b/asn1c_defs/all-defs/TAListforQMC.c new file mode 100644 index 0000000..9b6d96e --- /dev/null +++ b/asn1c_defs/all-defs/TAListforQMC.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "TAListforQMC.h" + +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 */ + { 0, &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/asn1c_defs/all-defs/TAListforQMC.h b/asn1c_defs/all-defs/TAListforQMC.h new file mode 100644 index 0000000..0e5e17c --- /dev/null +++ b/asn1c_defs/all-defs/TAListforQMC.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _TAListforQMC_H_ +#define _TAListforQMC_H_ + + +#include + +/* Including external dependencies */ +#include "TAC.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/TDD-Info.c b/asn1c_defs/all-defs/TDD-Info.c new file mode 100644 index 0000000..1868759 --- /dev/null +++ b/asn1c_defs/all-defs/TDD-Info.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P206, + 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/asn1c_defs/all-defs/TDD-Info.h b/asn1c_defs/all-defs/TDD-Info.h new file mode 100644 index 0000000..5dcf3d3 --- /dev/null +++ b/asn1c_defs/all-defs/TDD-Info.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _TDD_Info_H_ +#define _TDD_Info_H_ + + +#include + +/* Including external dependencies */ +#include "EARFCN.h" +#include "Transmission-Bandwidth.h" +#include "SubframeAssignment.h" +#include "SpecialSubframe-Info.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/TDD-InfoNeighbourServedNRCell-Information.c b/asn1c_defs/all-defs/TDD-InfoNeighbourServedNRCell-Information.c new file mode 100644 index 0000000..8be7994 --- /dev/null +++ b/asn1c_defs/all-defs/TDD-InfoNeighbourServedNRCell-Information.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P96, + 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/asn1c_defs/all-defs/TDD-InfoNeighbourServedNRCell-Information.h b/asn1c_defs/all-defs/TDD-InfoNeighbourServedNRCell-Information.h new file mode 100644 index 0000000..824673b --- /dev/null +++ b/asn1c_defs/all-defs/TDD-InfoNeighbourServedNRCell-Information.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _TDD_InfoNeighbourServedNRCell_Information_H_ +#define _TDD_InfoNeighbourServedNRCell_Information_H_ + + +#include + +/* Including external dependencies */ +#include "NRFreqInfo.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/TDD-InfoServedNRCell-Information.c b/asn1c_defs/all-defs/TDD-InfoServedNRCell-Information.c new file mode 100644 index 0000000..61476ab --- /dev/null +++ b/asn1c_defs/all-defs/TDD-InfoServedNRCell-Information.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P95, + 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/asn1c_defs/all-defs/TDD-InfoServedNRCell-Information.h b/asn1c_defs/all-defs/TDD-InfoServedNRCell-Information.h new file mode 100644 index 0000000..4175c92 --- /dev/null +++ b/asn1c_defs/all-defs/TDD-InfoServedNRCell-Information.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _TDD_InfoServedNRCell_Information_H_ +#define _TDD_InfoServedNRCell_Information_H_ + + +#include + +/* Including external dependencies */ +#include "NRFreqInfo.h" +#include "NR-TxBW.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/TargetCellInUTRAN.c b/asn1c_defs/all-defs/TargetCellInUTRAN.c new file mode 100644 index 0000000..ce6c279 --- /dev/null +++ b/asn1c_defs/all-defs/TargetCellInUTRAN.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/TargetCellInUTRAN.h b/asn1c_defs/all-defs/TargetCellInUTRAN.h new file mode 100644 index 0000000..fee4c70 --- /dev/null +++ b/asn1c_defs/all-defs/TargetCellInUTRAN.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _TargetCellInUTRAN_H_ +#define _TargetCellInUTRAN_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/TargeteNBtoSource-eNBTransparentContainer.c b/asn1c_defs/all-defs/TargeteNBtoSource-eNBTransparentContainer.c new file mode 100644 index 0000000..57a9618 --- /dev/null +++ b/asn1c_defs/all-defs/TargeteNBtoSource-eNBTransparentContainer.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/TargeteNBtoSource-eNBTransparentContainer.h b/asn1c_defs/all-defs/TargeteNBtoSource-eNBTransparentContainer.h new file mode 100644 index 0000000..47d9ef1 --- /dev/null +++ b/asn1c_defs/all-defs/TargeteNBtoSource-eNBTransparentContainer.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _TargeteNBtoSource_eNBTransparentContainer_H_ +#define _TargeteNBtoSource_eNBTransparentContainer_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/Threshold-RSRP.c b/asn1c_defs/all-defs/Threshold-RSRP.c new file mode 100644 index 0000000..5f95e87 --- /dev/null +++ b/asn1c_defs/all-defs/Threshold-RSRP.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_Threshold_RSRP_constr_1, Threshold_RSRP_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/Threshold-RSRP.h b/asn1c_defs/all-defs/Threshold-RSRP.h new file mode 100644 index 0000000..3921be0 --- /dev/null +++ b/asn1c_defs/all-defs/Threshold-RSRP.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _Threshold_RSRP_H_ +#define _Threshold_RSRP_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/Threshold-RSRQ.c b/asn1c_defs/all-defs/Threshold-RSRQ.c new file mode 100644 index 0000000..d5a97ff --- /dev/null +++ b/asn1c_defs/all-defs/Threshold-RSRQ.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_Threshold_RSRQ_constr_1, Threshold_RSRQ_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/Threshold-RSRQ.h b/asn1c_defs/all-defs/Threshold-RSRQ.h new file mode 100644 index 0000000..278f689 --- /dev/null +++ b/asn1c_defs/all-defs/Threshold-RSRQ.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _Threshold_RSRQ_H_ +#define _Threshold_RSRQ_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/Time-UE-StayedInCell-EnhancedGranularity.c b/asn1c_defs/all-defs/Time-UE-StayedInCell-EnhancedGranularity.c new file mode 100644 index 0000000..eb8eef4 --- /dev/null +++ b/asn1c_defs/all-defs/Time-UE-StayedInCell-EnhancedGranularity.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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 */ + { 0, &asn_PER_type_Time_UE_StayedInCell_EnhancedGranularity_constr_1, Time_UE_StayedInCell_EnhancedGranularity_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/Time-UE-StayedInCell-EnhancedGranularity.h b/asn1c_defs/all-defs/Time-UE-StayedInCell-EnhancedGranularity.h new file mode 100644 index 0000000..9a08b1c --- /dev/null +++ b/asn1c_defs/all-defs/Time-UE-StayedInCell-EnhancedGranularity.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _Time_UE_StayedInCell_EnhancedGranularity_H_ +#define _Time_UE_StayedInCell_EnhancedGranularity_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/Time-UE-StayedInCell.c b/asn1c_defs/all-defs/Time-UE-StayedInCell.c new file mode 100644 index 0000000..e7e9294 --- /dev/null +++ b/asn1c_defs/all-defs/Time-UE-StayedInCell.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_Time_UE_StayedInCell_constr_1, Time_UE_StayedInCell_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/Time-UE-StayedInCell.h b/asn1c_defs/all-defs/Time-UE-StayedInCell.h new file mode 100644 index 0000000..73f424d --- /dev/null +++ b/asn1c_defs/all-defs/Time-UE-StayedInCell.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _Time_UE_StayedInCell_H_ +#define _Time_UE_StayedInCell_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/TimeStamp.c b/asn1c_defs/all-defs/TimeStamp.c new file mode 100644 index 0000000..39359e7 --- /dev/null +++ b/asn1c_defs/all-defs/TimeStamp.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_TimeStamp_constr_1, TimeStamp_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/TimeStamp.h b/asn1c_defs/all-defs/TimeStamp.h new file mode 100644 index 0000000..ac67f7c --- /dev/null +++ b/asn1c_defs/all-defs/TimeStamp.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _TimeStamp_H_ +#define _TimeStamp_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/TimeToWait.c b/asn1c_defs/all-defs/TimeToWait.c new file mode 100644 index 0000000..b7cb62a --- /dev/null +++ b/asn1c_defs/all-defs/TimeToWait.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "TimeToWait.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_TimeToWait_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TimeToWait_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/TimeToWait.h b/asn1c_defs/all-defs/TimeToWait.h new file mode 100644 index 0000000..ada2094 --- /dev/null +++ b/asn1c_defs/all-defs/TimeToWait.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _TimeToWait_H_ +#define _TimeToWait_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/TraceActivation.c b/asn1c_defs/all-defs/TraceActivation.c new file mode 100644 index 0000000..06eb3c0 --- /dev/null +++ b/asn1c_defs/all-defs/TraceActivation.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P207, + 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/asn1c_defs/all-defs/TraceActivation.h b/asn1c_defs/all-defs/TraceActivation.h new file mode 100644 index 0000000..bbe9d3d --- /dev/null +++ b/asn1c_defs/all-defs/TraceActivation.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _TraceActivation_H_ +#define _TraceActivation_H_ + + +#include + +/* Including external dependencies */ +#include "EUTRANTraceID.h" +#include "InterfacesToTrace.h" +#include "TraceDepth.h" +#include "TraceCollectionEntityIPAddress.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/TraceCollectionEntityIPAddress.c b/asn1c_defs/all-defs/TraceCollectionEntityIPAddress.c new file mode 100644 index 0000000..154d71d --- /dev/null +++ b/asn1c_defs/all-defs/TraceCollectionEntityIPAddress.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_TraceCollectionEntityIPAddress_constr_1, TraceCollectionEntityIPAddress_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/TraceCollectionEntityIPAddress.h b/asn1c_defs/all-defs/TraceCollectionEntityIPAddress.h new file mode 100644 index 0000000..1fd20b6 --- /dev/null +++ b/asn1c_defs/all-defs/TraceCollectionEntityIPAddress.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _TraceCollectionEntityIPAddress_H_ +#define _TraceCollectionEntityIPAddress_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/TraceDepth.c b/asn1c_defs/all-defs/TraceDepth.c new file mode 100644 index 0000000..95ec037 --- /dev/null +++ b/asn1c_defs/all-defs/TraceDepth.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "TraceDepth.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_TraceDepth_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TraceDepth_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/TraceDepth.h b/asn1c_defs/all-defs/TraceDepth.h new file mode 100644 index 0000000..c8144b8 --- /dev/null +++ b/asn1c_defs/all-defs/TraceDepth.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _TraceDepth_H_ +#define _TraceDepth_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/Transmission-Bandwidth.c b/asn1c_defs/all-defs/Transmission-Bandwidth.c new file mode 100644 index 0000000..9405431 --- /dev/null +++ b/asn1c_defs/all-defs/Transmission-Bandwidth.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "Transmission-Bandwidth.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_Transmission_Bandwidth_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Transmission_Bandwidth_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/Transmission-Bandwidth.h b/asn1c_defs/all-defs/Transmission-Bandwidth.h new file mode 100644 index 0000000..2fd8a9a --- /dev/null +++ b/asn1c_defs/all-defs/Transmission-Bandwidth.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _Transmission_Bandwidth_H_ +#define _Transmission_Bandwidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/TransportLayerAddress.c b/asn1c_defs/all-defs/TransportLayerAddress.c new file mode 100644 index 0000000..0248167 --- /dev/null +++ b/asn1c_defs/all-defs/TransportLayerAddress.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_TransportLayerAddress_constr_1, TransportLayerAddress_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/TransportLayerAddress.h b/asn1c_defs/all-defs/TransportLayerAddress.h new file mode 100644 index 0000000..ab52cd3 --- /dev/null +++ b/asn1c_defs/all-defs/TransportLayerAddress.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _TransportLayerAddress_H_ +#define _TransportLayerAddress_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/TriggeringMessage.c b/asn1c_defs/all-defs/TriggeringMessage.c new file mode 100644 index 0000000..851da9e --- /dev/null +++ b/asn1c_defs/all-defs/TriggeringMessage.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-CommonDataTypes" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "TriggeringMessage.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_TriggeringMessage_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TriggeringMessage_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/TriggeringMessage.h b/asn1c_defs/all-defs/TriggeringMessage.h new file mode 100644 index 0000000..0aca7dc --- /dev/null +++ b/asn1c_defs/all-defs/TriggeringMessage.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-CommonDataTypes" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _TriggeringMessage_H_ +#define _TriggeringMessage_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/TunnelInformation.c b/asn1c_defs/all-defs/TunnelInformation.c new file mode 100644 index 0000000..417649d --- /dev/null +++ b/asn1c_defs/all-defs/TunnelInformation.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P208, + 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/asn1c_defs/all-defs/TunnelInformation.h b/asn1c_defs/all-defs/TunnelInformation.h new file mode 100644 index 0000000..49c2fbf --- /dev/null +++ b/asn1c_defs/all-defs/TunnelInformation.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _TunnelInformation_H_ +#define _TunnelInformation_H_ + + +#include + +/* Including external dependencies */ +#include "TransportLayerAddress.h" +#include "Port-Number.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/TypeOfError.c b/asn1c_defs/all-defs/TypeOfError.c new file mode 100644 index 0000000..8153288 --- /dev/null +++ b/asn1c_defs/all-defs/TypeOfError.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "TypeOfError.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_TypeOfError_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TypeOfError_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/TypeOfError.h b/asn1c_defs/all-defs/TypeOfError.h new file mode 100644 index 0000000..1389cc2 --- /dev/null +++ b/asn1c_defs/all-defs/TypeOfError.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _TypeOfError_H_ +#define _TypeOfError_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/TypeOfMessage.c b/asn1c_defs/all-defs/TypeOfMessage.c new file mode 100644 index 0000000..055fbb4 --- /dev/null +++ b/asn1c_defs/all-defs/TypeOfMessage.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "TypeOfMessage.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_TypeOfMessage_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TypeOfMessage_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/TypeOfMessage.h b/asn1c_defs/all-defs/TypeOfMessage.h new file mode 100644 index 0000000..e9916dc --- /dev/null +++ b/asn1c_defs/all-defs/TypeOfMessage.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2SM-gNB-X2-IEs" + * found in "../../asn_defs/asn1/e2sm-gNB-X2-release-1-v041.asn.txt" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _TypeOfMessage_H_ +#define _TypeOfMessage_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/UE-ContextInformation-SgNBModReq.c b/asn1c_defs/all-defs/UE-ContextInformation-SgNBModReq.c new file mode 100644 index 0000000..433900f --- /dev/null +++ b/asn1c_defs/all-defs/UE-ContextInformation-SgNBModReq.c @@ -0,0 +1,118 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P52, + 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/asn1c_defs/all-defs/UE-ContextInformation-SgNBModReq.h b/asn1c_defs/all-defs/UE-ContextInformation-SgNBModReq.h new file mode 100644 index 0000000..9d6ac99 --- /dev/null +++ b/asn1c_defs/all-defs/UE-ContextInformation-SgNBModReq.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UE_ContextInformation_SgNBModReq_H_ +#define _UE_ContextInformation_SgNBModReq_H_ + + +#include + +/* Including external dependencies */ +#include "SgNBSecurityKey.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/UE-ContextInformation.c b/asn1c_defs/all-defs/UE-ContextInformation.c new file mode 100644 index 0000000..9567087 --- /dev/null +++ b/asn1c_defs/all-defs/UE-ContextInformation.c @@ -0,0 +1,145 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P0, + 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/asn1c_defs/all-defs/UE-ContextInformation.h b/asn1c_defs/all-defs/UE-ContextInformation.h new file mode 100644 index 0000000..d995187 --- /dev/null +++ b/asn1c_defs/all-defs/UE-ContextInformation.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UE_ContextInformation_H_ +#define _UE_ContextInformation_H_ + + +#include + +/* 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 + +#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 diff --git a/asn1c_defs/all-defs/UE-ContextInformationRetrieve.c b/asn1c_defs/all-defs/UE-ContextInformationRetrieve.c new file mode 100644 index 0000000..e033fd5 --- /dev/null +++ b/asn1c_defs/all-defs/UE-ContextInformationRetrieve.c @@ -0,0 +1,166 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P42, + 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/asn1c_defs/all-defs/UE-ContextInformationRetrieve.h b/asn1c_defs/all-defs/UE-ContextInformationRetrieve.h new file mode 100644 index 0000000..92f7971 --- /dev/null +++ b/asn1c_defs/all-defs/UE-ContextInformationRetrieve.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UE_ContextInformationRetrieve_H_ +#define _UE_ContextInformationRetrieve_H_ + + +#include + +/* 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 + +#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 diff --git a/asn1c_defs/all-defs/UE-ContextInformationSeNBModReq.c b/asn1c_defs/all-defs/UE-ContextInformationSeNBModReq.c new file mode 100644 index 0000000..afb6d14 --- /dev/null +++ b/asn1c_defs/all-defs/UE-ContextInformationSeNBModReq.c @@ -0,0 +1,118 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P23, + 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/asn1c_defs/all-defs/UE-ContextInformationSeNBModReq.h b/asn1c_defs/all-defs/UE-ContextInformationSeNBModReq.h new file mode 100644 index 0000000..ceb8a3e --- /dev/null +++ b/asn1c_defs/all-defs/UE-ContextInformationSeNBModReq.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UE_ContextInformationSeNBModReq_H_ +#define _UE_ContextInformationSeNBModReq_H_ + + +#include + +/* Including external dependencies */ +#include "SeNBSecurityKey.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/UE-ContextKeptIndicator.c b/asn1c_defs/all-defs/UE-ContextKeptIndicator.c new file mode 100644 index 0000000..6b08191 --- /dev/null +++ b/asn1c_defs/all-defs/UE-ContextKeptIndicator.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "UE-ContextKeptIndicator.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_UE_ContextKeptIndicator_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_UE_ContextKeptIndicator_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/UE-ContextKeptIndicator.h b/asn1c_defs/all-defs/UE-ContextKeptIndicator.h new file mode 100644 index 0000000..bf5e861 --- /dev/null +++ b/asn1c_defs/all-defs/UE-ContextKeptIndicator.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UE_ContextKeptIndicator_H_ +#define _UE_ContextKeptIndicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/UE-ContextReferenceAtSeNB.c b/asn1c_defs/all-defs/UE-ContextReferenceAtSeNB.c new file mode 100644 index 0000000..44b5991 --- /dev/null +++ b/asn1c_defs/all-defs/UE-ContextReferenceAtSeNB.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P2, + 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/asn1c_defs/all-defs/UE-ContextReferenceAtSeNB.h b/asn1c_defs/all-defs/UE-ContextReferenceAtSeNB.h new file mode 100644 index 0000000..33b6d2e --- /dev/null +++ b/asn1c_defs/all-defs/UE-ContextReferenceAtSeNB.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UE_ContextReferenceAtSeNB_H_ +#define _UE_ContextReferenceAtSeNB_H_ + + +#include + +/* Including external dependencies */ +#include "GlobalENB-ID.h" +#include "UE-X2AP-ID.h" +#include "UE-X2AP-ID-Extension.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/UE-ContextReferenceAtSgNB.c b/asn1c_defs/all-defs/UE-ContextReferenceAtSgNB.c new file mode 100644 index 0000000..5f65564 --- /dev/null +++ b/asn1c_defs/all-defs/UE-ContextReferenceAtSgNB.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P4, + 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/asn1c_defs/all-defs/UE-ContextReferenceAtSgNB.h b/asn1c_defs/all-defs/UE-ContextReferenceAtSgNB.h new file mode 100644 index 0000000..dfa0cf9 --- /dev/null +++ b/asn1c_defs/all-defs/UE-ContextReferenceAtSgNB.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UE_ContextReferenceAtSgNB_H_ +#define _UE_ContextReferenceAtSgNB_H_ + + +#include + +/* Including external dependencies */ +#include "GlobalGNB-ID.h" +#include "SgNB-UE-X2AP-ID.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/UE-ContextReferenceAtWT.c b/asn1c_defs/all-defs/UE-ContextReferenceAtWT.c new file mode 100644 index 0000000..e6c0ba6 --- /dev/null +++ b/asn1c_defs/all-defs/UE-ContextReferenceAtWT.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P3, + 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/asn1c_defs/all-defs/UE-ContextReferenceAtWT.h b/asn1c_defs/all-defs/UE-ContextReferenceAtWT.h new file mode 100644 index 0000000..6ced1d2 --- /dev/null +++ b/asn1c_defs/all-defs/UE-ContextReferenceAtWT.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UE_ContextReferenceAtWT_H_ +#define _UE_ContextReferenceAtWT_H_ + + +#include + +/* Including external dependencies */ +#include "WTID.h" +#include "WT-UE-XwAP-ID.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/UE-HistoryInformation.c b/asn1c_defs/all-defs/UE-HistoryInformation.c new file mode 100644 index 0000000..9f46be6 --- /dev/null +++ b/asn1c_defs/all-defs/UE-HistoryInformation.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "UE-HistoryInformation.h" + +#include "LastVisitedCell-Item.h" +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 */ + { 0, &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/asn1c_defs/all-defs/UE-HistoryInformation.h b/asn1c_defs/all-defs/UE-HistoryInformation.h new file mode 100644 index 0000000..af1ad82 --- /dev/null +++ b/asn1c_defs/all-defs/UE-HistoryInformation.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UE_HistoryInformation_H_ +#define _UE_HistoryInformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/UE-HistoryInformationFromTheUE.c b/asn1c_defs/all-defs/UE-HistoryInformationFromTheUE.c new file mode 100644 index 0000000..045eb2d --- /dev/null +++ b/asn1c_defs/all-defs/UE-HistoryInformationFromTheUE.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/UE-HistoryInformationFromTheUE.h b/asn1c_defs/all-defs/UE-HistoryInformationFromTheUE.h new file mode 100644 index 0000000..9d6ee5c --- /dev/null +++ b/asn1c_defs/all-defs/UE-HistoryInformationFromTheUE.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UE_HistoryInformationFromTheUE_H_ +#define _UE_HistoryInformationFromTheUE_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/UE-RLF-Report-Container-for-extended-bands.c b/asn1c_defs/all-defs/UE-RLF-Report-Container-for-extended-bands.c new file mode 100644 index 0000000..c78e7ca --- /dev/null +++ b/asn1c_defs/all-defs/UE-RLF-Report-Container-for-extended-bands.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/UE-RLF-Report-Container-for-extended-bands.h b/asn1c_defs/all-defs/UE-RLF-Report-Container-for-extended-bands.h new file mode 100644 index 0000000..109e393 --- /dev/null +++ b/asn1c_defs/all-defs/UE-RLF-Report-Container-for-extended-bands.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UE_RLF_Report_Container_for_extended_bands_H_ +#define _UE_RLF_Report_Container_for_extended_bands_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/UE-RLF-Report-Container.c b/asn1c_defs/all-defs/UE-RLF-Report-Container.c new file mode 100644 index 0000000..56b0ecc --- /dev/null +++ b/asn1c_defs/all-defs/UE-RLF-Report-Container.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/UE-RLF-Report-Container.h b/asn1c_defs/all-defs/UE-RLF-Report-Container.h new file mode 100644 index 0000000..5b76ba3 --- /dev/null +++ b/asn1c_defs/all-defs/UE-RLF-Report-Container.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UE_RLF_Report_Container_H_ +#define _UE_RLF_Report_Container_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/UE-S1AP-ID.c b/asn1c_defs/all-defs/UE-S1AP-ID.c new file mode 100644 index 0000000..875497a --- /dev/null +++ b/asn1c_defs/all-defs/UE-S1AP-ID.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &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/asn1c_defs/all-defs/UE-S1AP-ID.h b/asn1c_defs/all-defs/UE-S1AP-ID.h new file mode 100644 index 0000000..d0ee88e --- /dev/null +++ b/asn1c_defs/all-defs/UE-S1AP-ID.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UE_S1AP_ID_H_ +#define _UE_S1AP_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/UE-X2AP-ID-Extension.c b/asn1c_defs/all-defs/UE-X2AP-ID-Extension.c new file mode 100644 index 0000000..c3a57c7 --- /dev/null +++ b/asn1c_defs/all-defs/UE-X2AP-ID-Extension.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_UE_X2AP_ID_Extension_constr_1, UE_X2AP_ID_Extension_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/UE-X2AP-ID-Extension.h b/asn1c_defs/all-defs/UE-X2AP-ID-Extension.h new file mode 100644 index 0000000..2517f21 --- /dev/null +++ b/asn1c_defs/all-defs/UE-X2AP-ID-Extension.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UE_X2AP_ID_Extension_H_ +#define _UE_X2AP_ID_Extension_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/UE-X2AP-ID.c b/asn1c_defs/all-defs/UE-X2AP-ID.c new file mode 100644 index 0000000..b2aae45 --- /dev/null +++ b/asn1c_defs/all-defs/UE-X2AP-ID.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_UE_X2AP_ID_constr_1, UE_X2AP_ID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/UE-X2AP-ID.h b/asn1c_defs/all-defs/UE-X2AP-ID.h new file mode 100644 index 0000000..83d0e94 --- /dev/null +++ b/asn1c_defs/all-defs/UE-X2AP-ID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UE_X2AP_ID_H_ +#define _UE_X2AP_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/UEAggregateMaximumBitRate.c b/asn1c_defs/all-defs/UEAggregateMaximumBitRate.c new file mode 100644 index 0000000..1f7791a --- /dev/null +++ b/asn1c_defs/all-defs/UEAggregateMaximumBitRate.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P209, + 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/asn1c_defs/all-defs/UEAggregateMaximumBitRate.h b/asn1c_defs/all-defs/UEAggregateMaximumBitRate.h new file mode 100644 index 0000000..955ebe5 --- /dev/null +++ b/asn1c_defs/all-defs/UEAggregateMaximumBitRate.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UEAggregateMaximumBitRate_H_ +#define _UEAggregateMaximumBitRate_H_ + + +#include + +/* Including external dependencies */ +#include "BitRate.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/UEAppLayerMeasConfig.c b/asn1c_defs/all-defs/UEAppLayerMeasConfig.c new file mode 100644 index 0000000..3a7f8b8 --- /dev/null +++ b/asn1c_defs/all-defs/UEAppLayerMeasConfig.c @@ -0,0 +1,104 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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, + { 0, &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_8231P210, + 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/asn1c_defs/all-defs/UEAppLayerMeasConfig.h b/asn1c_defs/all-defs/UEAppLayerMeasConfig.h new file mode 100644 index 0000000..d67f42f --- /dev/null +++ b/asn1c_defs/all-defs/UEAppLayerMeasConfig.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UEAppLayerMeasConfig_H_ +#define _UEAppLayerMeasConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include "AreaScopeOfQMC.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/UEContextRelease.c b/asn1c_defs/all-defs/UEContextRelease.c new file mode 100644 index 0000000..bd1f12a --- /dev/null +++ b/asn1c_defs/all-defs/UEContextRelease.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P19, + 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/asn1c_defs/all-defs/UEContextRelease.h b/asn1c_defs/all-defs/UEContextRelease.h new file mode 100644 index 0000000..40b875e --- /dev/null +++ b/asn1c_defs/all-defs/UEContextRelease.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UEContextRelease_H_ +#define _UEContextRelease_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UEContextRelease */ +typedef struct UEContextRelease { + ProtocolIE_Container_8180P19_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 diff --git a/asn1c_defs/all-defs/UEID.c b/asn1c_defs/all-defs/UEID.c new file mode 100644 index 0000000..8c50012 --- /dev/null +++ b/asn1c_defs/all-defs/UEID.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_UEID_constr_1, UEID_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/UEID.h b/asn1c_defs/all-defs/UEID.h new file mode 100644 index 0000000..ca4af99 --- /dev/null +++ b/asn1c_defs/all-defs/UEID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UEID_H_ +#define _UEID_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/UENRMeasurement.c b/asn1c_defs/all-defs/UENRMeasurement.c new file mode 100644 index 0000000..75fe5ea --- /dev/null +++ b/asn1c_defs/all-defs/UENRMeasurement.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P171, + 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/asn1c_defs/all-defs/UENRMeasurement.h b/asn1c_defs/all-defs/UENRMeasurement.h new file mode 100644 index 0000000..08233c0 --- /dev/null +++ b/asn1c_defs/all-defs/UENRMeasurement.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UENRMeasurement_H_ +#define _UENRMeasurement_H_ + + +#include + +/* Including external dependencies */ +#include "RRCContainer.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/UESecurityCapabilities.c b/asn1c_defs/all-defs/UESecurityCapabilities.c new file mode 100644 index 0000000..f5df7c7 --- /dev/null +++ b/asn1c_defs/all-defs/UESecurityCapabilities.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P211, + 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/asn1c_defs/all-defs/UESecurityCapabilities.h b/asn1c_defs/all-defs/UESecurityCapabilities.h new file mode 100644 index 0000000..f8a37cd --- /dev/null +++ b/asn1c_defs/all-defs/UESecurityCapabilities.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UESecurityCapabilities_H_ +#define _UESecurityCapabilities_H_ + + +#include + +/* Including external dependencies */ +#include "EncryptionAlgorithms.h" +#include "IntegrityProtectionAlgorithms.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/UESidelinkAggregateMaximumBitRate.c b/asn1c_defs/all-defs/UESidelinkAggregateMaximumBitRate.c new file mode 100644 index 0000000..57dbd15 --- /dev/null +++ b/asn1c_defs/all-defs/UESidelinkAggregateMaximumBitRate.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P212, + 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/asn1c_defs/all-defs/UESidelinkAggregateMaximumBitRate.h b/asn1c_defs/all-defs/UESidelinkAggregateMaximumBitRate.h new file mode 100644 index 0000000..fa088e5 --- /dev/null +++ b/asn1c_defs/all-defs/UESidelinkAggregateMaximumBitRate.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UESidelinkAggregateMaximumBitRate_H_ +#define _UESidelinkAggregateMaximumBitRate_H_ + + +#include + +/* Including external dependencies */ +#include "BitRate.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/UEsToBeResetList-Item.c b/asn1c_defs/all-defs/UEsToBeResetList-Item.c new file mode 100644 index 0000000..467af31 --- /dev/null +++ b/asn1c_defs/all-defs/UEsToBeResetList-Item.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P213, + 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/asn1c_defs/all-defs/UEsToBeResetList-Item.h b/asn1c_defs/all-defs/UEsToBeResetList-Item.h new file mode 100644 index 0000000..0ec745e --- /dev/null +++ b/asn1c_defs/all-defs/UEsToBeResetList-Item.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UEsToBeResetList_Item_H_ +#define _UEsToBeResetList_Item_H_ + + +#include + +/* Including external dependencies */ +#include "UE-X2AP-ID.h" +#include "UE-X2AP-ID-Extension.h" +#include "SgNB-UE-X2AP-ID.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/UEsToBeResetList.c b/asn1c_defs/all-defs/UEsToBeResetList.c new file mode 100644 index 0000000..31eca91 --- /dev/null +++ b/asn1c_defs/all-defs/UEsToBeResetList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "UEsToBeResetList.h" + +#include "UEsToBeResetList-Item.h" +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 */ + { 0, &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/asn1c_defs/all-defs/UEsToBeResetList.h b/asn1c_defs/all-defs/UEsToBeResetList.h new file mode 100644 index 0000000..103da70 --- /dev/null +++ b/asn1c_defs/all-defs/UEsToBeResetList.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UEsToBeResetList_H_ +#define _UEsToBeResetList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/UL-GBR-PRB-usage.c b/asn1c_defs/all-defs/UL-GBR-PRB-usage.c new file mode 100644 index 0000000..561a3f5 --- /dev/null +++ b/asn1c_defs/all-defs/UL-GBR-PRB-usage.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_UL_GBR_PRB_usage_constr_1, UL_GBR_PRB_usage_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/UL-GBR-PRB-usage.h b/asn1c_defs/all-defs/UL-GBR-PRB-usage.h new file mode 100644 index 0000000..bacdf47 --- /dev/null +++ b/asn1c_defs/all-defs/UL-GBR-PRB-usage.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UL_GBR_PRB_usage_H_ +#define _UL_GBR_PRB_usage_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/UL-HighInterferenceIndication.c b/asn1c_defs/all-defs/UL-HighInterferenceIndication.c new file mode 100644 index 0000000..b45af15 --- /dev/null +++ b/asn1c_defs/all-defs/UL-HighInterferenceIndication.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_UL_HighInterferenceIndication_constr_1, UL_HighInterferenceIndication_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/UL-HighInterferenceIndication.h b/asn1c_defs/all-defs/UL-HighInterferenceIndication.h new file mode 100644 index 0000000..0c72df1 --- /dev/null +++ b/asn1c_defs/all-defs/UL-HighInterferenceIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UL_HighInterferenceIndication_H_ +#define _UL_HighInterferenceIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/UL-HighInterferenceIndicationInfo-Item.c b/asn1c_defs/all-defs/UL-HighInterferenceIndicationInfo-Item.c new file mode 100644 index 0000000..eefa88f --- /dev/null +++ b/asn1c_defs/all-defs/UL-HighInterferenceIndicationInfo-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P216, + 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/asn1c_defs/all-defs/UL-HighInterferenceIndicationInfo-Item.h b/asn1c_defs/all-defs/UL-HighInterferenceIndicationInfo-Item.h new file mode 100644 index 0000000..65a6324 --- /dev/null +++ b/asn1c_defs/all-defs/UL-HighInterferenceIndicationInfo-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UL_HighInterferenceIndicationInfo_Item_H_ +#define _UL_HighInterferenceIndicationInfo_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ECGI.h" +#include "UL-HighInterferenceIndication.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/UL-HighInterferenceIndicationInfo.c b/asn1c_defs/all-defs/UL-HighInterferenceIndicationInfo.c new file mode 100644 index 0000000..e0f3fef --- /dev/null +++ b/asn1c_defs/all-defs/UL-HighInterferenceIndicationInfo.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "UL-HighInterferenceIndicationInfo.h" + +#include "UL-HighInterferenceIndicationInfo-Item.h" +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 */ + { 0, &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/asn1c_defs/all-defs/UL-HighInterferenceIndicationInfo.h b/asn1c_defs/all-defs/UL-HighInterferenceIndicationInfo.h new file mode 100644 index 0000000..557218a --- /dev/null +++ b/asn1c_defs/all-defs/UL-HighInterferenceIndicationInfo.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UL_HighInterferenceIndicationInfo_H_ +#define _UL_HighInterferenceIndicationInfo_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/UL-InterferenceOverloadIndication-Item.c b/asn1c_defs/all-defs/UL-InterferenceOverloadIndication-Item.c new file mode 100644 index 0000000..6f92d20 --- /dev/null +++ b/asn1c_defs/all-defs/UL-InterferenceOverloadIndication-Item.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "UL-InterferenceOverloadIndication-Item.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &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/asn1c_defs/all-defs/UL-InterferenceOverloadIndication-Item.h b/asn1c_defs/all-defs/UL-InterferenceOverloadIndication-Item.h new file mode 100644 index 0000000..6c325b1 --- /dev/null +++ b/asn1c_defs/all-defs/UL-InterferenceOverloadIndication-Item.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UL_InterferenceOverloadIndication_Item_H_ +#define _UL_InterferenceOverloadIndication_Item_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/UL-InterferenceOverloadIndication.c b/asn1c_defs/all-defs/UL-InterferenceOverloadIndication.c new file mode 100644 index 0000000..6a354df --- /dev/null +++ b/asn1c_defs/all-defs/UL-InterferenceOverloadIndication.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "UL-InterferenceOverloadIndication.h" + +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 */ + { 0, &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/asn1c_defs/all-defs/UL-InterferenceOverloadIndication.h b/asn1c_defs/all-defs/UL-InterferenceOverloadIndication.h new file mode 100644 index 0000000..03054ba --- /dev/null +++ b/asn1c_defs/all-defs/UL-InterferenceOverloadIndication.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UL_InterferenceOverloadIndication_H_ +#define _UL_InterferenceOverloadIndication_H_ + + +#include + +/* Including external dependencies */ +#include "UL-InterferenceOverloadIndication-Item.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/UL-Total-PRB-usage.c b/asn1c_defs/all-defs/UL-Total-PRB-usage.c new file mode 100644 index 0000000..c85d226 --- /dev/null +++ b/asn1c_defs/all-defs/UL-Total-PRB-usage.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_UL_Total_PRB_usage_constr_1, UL_Total_PRB_usage_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/UL-Total-PRB-usage.h b/asn1c_defs/all-defs/UL-Total-PRB-usage.h new file mode 100644 index 0000000..52f0ecb --- /dev/null +++ b/asn1c_defs/all-defs/UL-Total-PRB-usage.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UL_Total_PRB_usage_H_ +#define _UL_Total_PRB_usage_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/UL-UE-Configuration.c b/asn1c_defs/all-defs/UL-UE-Configuration.c new file mode 100644 index 0000000..33716db --- /dev/null +++ b/asn1c_defs/all-defs/UL-UE-Configuration.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "UL-UE-Configuration.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &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/asn1c_defs/all-defs/UL-UE-Configuration.h b/asn1c_defs/all-defs/UL-UE-Configuration.h new file mode 100644 index 0000000..93e13e2 --- /dev/null +++ b/asn1c_defs/all-defs/UL-UE-Configuration.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UL_UE_Configuration_H_ +#define _UL_UE_Configuration_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/UL-non-GBR-PRB-usage.c b/asn1c_defs/all-defs/UL-non-GBR-PRB-usage.c new file mode 100644 index 0000000..fe23e8b --- /dev/null +++ b/asn1c_defs/all-defs/UL-non-GBR-PRB-usage.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &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/asn1c_defs/all-defs/UL-non-GBR-PRB-usage.h b/asn1c_defs/all-defs/UL-non-GBR-PRB-usage.h new file mode 100644 index 0000000..ed24eb7 --- /dev/null +++ b/asn1c_defs/all-defs/UL-non-GBR-PRB-usage.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UL_non_GBR_PRB_usage_H_ +#define _UL_non_GBR_PRB_usage_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/UL-scheduling-PDCCH-CCE-usage.c b/asn1c_defs/all-defs/UL-scheduling-PDCCH-CCE-usage.c new file mode 100644 index 0000000..fc41804 --- /dev/null +++ b/asn1c_defs/all-defs/UL-scheduling-PDCCH-CCE-usage.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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 */ + { 0, &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/asn1c_defs/all-defs/UL-scheduling-PDCCH-CCE-usage.h b/asn1c_defs/all-defs/UL-scheduling-PDCCH-CCE-usage.h new file mode 100644 index 0000000..865f5bd --- /dev/null +++ b/asn1c_defs/all-defs/UL-scheduling-PDCCH-CCE-usage.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UL_scheduling_PDCCH_CCE_usage_H_ +#define _UL_scheduling_PDCCH_CCE_usage_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/ULConfiguration.c b/asn1c_defs/all-defs/ULConfiguration.c new file mode 100644 index 0000000..a0d8bec --- /dev/null +++ b/asn1c_defs/all-defs/ULConfiguration.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P215, + 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/asn1c_defs/all-defs/ULConfiguration.h b/asn1c_defs/all-defs/ULConfiguration.h new file mode 100644 index 0000000..e569848 --- /dev/null +++ b/asn1c_defs/all-defs/ULConfiguration.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ULConfiguration_H_ +#define _ULConfiguration_H_ + + +#include + +/* Including external dependencies */ +#include "UL-UE-Configuration.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/ULOnlySharing.c b/asn1c_defs/all-defs/ULOnlySharing.c new file mode 100644 index 0000000..a9bc6f7 --- /dev/null +++ b/asn1c_defs/all-defs/ULOnlySharing.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P217, + 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/asn1c_defs/all-defs/ULOnlySharing.h b/asn1c_defs/all-defs/ULOnlySharing.h new file mode 100644 index 0000000..153ccea --- /dev/null +++ b/asn1c_defs/all-defs/ULOnlySharing.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ULOnlySharing_H_ +#define _ULOnlySharing_H_ + + +#include + +/* Including external dependencies */ +#include "DataTrafficResources.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/ULResourceBitmapULandDLSharing.c b/asn1c_defs/all-defs/ULResourceBitmapULandDLSharing.c new file mode 100644 index 0000000..a85eeb6 --- /dev/null +++ b/asn1c_defs/all-defs/ULResourceBitmapULandDLSharing.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_ULResourceBitmapULandDLSharing_constr_1, ULResourceBitmapULandDLSharing_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/ULResourceBitmapULandDLSharing.h b/asn1c_defs/all-defs/ULResourceBitmapULandDLSharing.h new file mode 100644 index 0000000..f6b0ff3 --- /dev/null +++ b/asn1c_defs/all-defs/ULResourceBitmapULandDLSharing.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ULResourceBitmapULandDLSharing_H_ +#define _ULResourceBitmapULandDLSharing_H_ + + +#include + +/* 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; +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 diff --git a/asn1c_defs/all-defs/ULResourcesULandDLSharing.c b/asn1c_defs/all-defs/ULResourcesULandDLSharing.c new file mode 100644 index 0000000..aa157ec --- /dev/null +++ b/asn1c_defs/all-defs/ULResourcesULandDLSharing.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "ULResourcesULandDLSharing.h" + +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) */ + { 0, &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/asn1c_defs/all-defs/ULResourcesULandDLSharing.h b/asn1c_defs/all-defs/ULResourcesULandDLSharing.h new file mode 100644 index 0000000..d096003 --- /dev/null +++ b/asn1c_defs/all-defs/ULResourcesULandDLSharing.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ULResourcesULandDLSharing_H_ +#define _ULResourcesULandDLSharing_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ULResourceBitmapULandDLSharing.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/ULandDLSharing.c b/asn1c_defs/all-defs/ULandDLSharing.c new file mode 100644 index 0000000..6be5924 --- /dev/null +++ b/asn1c_defs/all-defs/ULandDLSharing.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P214, + 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/asn1c_defs/all-defs/ULandDLSharing.h b/asn1c_defs/all-defs/ULandDLSharing.h new file mode 100644 index 0000000..b3f1406 --- /dev/null +++ b/asn1c_defs/all-defs/ULandDLSharing.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _ULandDLSharing_H_ +#define _ULandDLSharing_H_ + + +#include + +/* Including external dependencies */ +#include "ULResourcesULandDLSharing.h" +#include "DLResourcesULandDLSharing.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/UnsuccessfulOutcome.c b/asn1c_defs/all-defs/UnsuccessfulOutcome.c new file mode 100644 index 0000000..24cb67d --- /dev/null +++ b/asn1c_defs/all-defs/UnsuccessfulOutcome.c @@ -0,0 +1,438 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Descriptions" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "UnsuccessfulOutcome.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_x2Setup = 6; +static const long asn_VAL_5_reject = 0; +static const long asn_VAL_6_id_endcX2Setup = 36; +static const long asn_VAL_6_reject = 0; +static const long asn_VAL_7_id_resourceStatusReportingInitiation = 9; +static const long asn_VAL_7_reject = 0; +static const long asn_VAL_8_id_eNBConfigurationUpdate = 8; +static const long asn_VAL_8_reject = 0; +static const long asn_VAL_9_id_endcConfigurationUpdate = 37; +static const long asn_VAL_9_reject = 0; +static const long asn_VAL_10_id_reset = 7; +static const long asn_VAL_10_reject = 0; +static const long asn_VAL_11_id_ricIndication = 205; +static const long asn_VAL_11_ignore = 1; +static const long asn_VAL_12_id_ricServiceQuery = 206; +static const long asn_VAL_12_ignore = 1; +static const long asn_VAL_13_id_loadIndication = 2; +static const long asn_VAL_13_ignore = 1; +static const long asn_VAL_14_id_gNBStatusIndication = 45; +static const long asn_VAL_14_ignore = 1; +static const long asn_VAL_15_id_resourceStatusReporting = 10; +static const long asn_VAL_15_ignore = 1; +static const long asn_VAL_16_id_errorIndication = 3; +static const long asn_VAL_16_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_X2SetupRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_X2SetupResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_X2SetupFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_x2Setup }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_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_6_id_endcX2Setup }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_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_7_id_resourceStatusReportingInitiation }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_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_8_id_eNBConfigurationUpdate }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_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_9_id_endcConfigurationUpdate }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_10_id_reset }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICindication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_ricIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_12_id_ricServiceQuery }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_LoadInformation }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_13_id_loadIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_GNBStatusIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_14_id_gNBStatusIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ResourceStatusUpdate }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_15_id_resourceStatusReporting }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_15_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_16_id_errorIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_16_ignore } +}; +static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { + { 16, 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_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_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 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_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 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_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_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_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.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 UnsuccessfulOutcome__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 UnsuccessfulOutcome__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 UnsuccessfulOutcome__value, choice.RICcontrolFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICcontrolFailure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICcontrolFailure" + }, + { 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.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.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.ENDCConfigurationUpdateFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ENDCConfigurationUpdateFailure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ENDCConfigurationUpdateFailure" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 8 }, /* RICsubscriptionFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 7 }, /* RICsubscriptionDeleteFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 6 }, /* RICserviceUpdateFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 5 }, /* RICcontrolFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 4 }, /* X2SetupFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 3 }, /* ENDCX2SetupFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 2 }, /* ResourceStatusFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -7, 1 }, /* ENBConfigurationUpdateFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -8, 0 } /* ENDCConfigurationUpdateFailure */ +}; +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, + 9, /* 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, + 9, /* 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, + { 0, &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, + { 0, &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, + { 0, &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/asn1c_defs/all-defs/UnsuccessfulOutcome.h b/asn1c_defs/all-defs/UnsuccessfulOutcome.h new file mode 100644 index 0000000..922cb47 --- /dev/null +++ b/asn1c_defs/all-defs/UnsuccessfulOutcome.h @@ -0,0 +1,112 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Descriptions" + * found in "../../asn_defs/asn1/e2ap-v031.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UnsuccessfulOutcome_H_ +#define _UnsuccessfulOutcome_H_ + + +#include + +/* Including external dependencies */ +#include "ProcedureCode.h" +#include "Criticality.h" +#include +#include +#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 "X2SetupRequest.h" +#include "X2SetupResponse.h" +#include "X2SetupFailure.h" +#include "ENDCX2SetupRequest.h" +#include "ENDCX2SetupResponse.h" +#include "ENDCX2SetupFailure.h" +#include "ResourceStatusRequest.h" +#include "ResourceStatusResponse.h" +#include "ResourceStatusFailure.h" +#include "ENBConfigurationUpdate.h" +#include "ENBConfigurationUpdateAcknowledge.h" +#include "ENBConfigurationUpdateFailure.h" +#include "ENDCConfigurationUpdate.h" +#include "ENDCConfigurationUpdateAcknowledge.h" +#include "ENDCConfigurationUpdateFailure.h" +#include "ResetRequest.h" +#include "ResetResponse.h" +#include "RICindication.h" +#include "RICserviceQuery.h" +#include "LoadInformation.h" +#include "GNBStatusIndication.h" +#include "ResourceStatusUpdate.h" +#include "ErrorIndication.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum UnsuccessfulOutcome__value_PR { + UnsuccessfulOutcome__value_PR_NOTHING, /* No components present */ + UnsuccessfulOutcome__value_PR_RICsubscriptionFailure, + UnsuccessfulOutcome__value_PR_RICsubscriptionDeleteFailure, + UnsuccessfulOutcome__value_PR_RICserviceUpdateFailure, + UnsuccessfulOutcome__value_PR_RICcontrolFailure, + UnsuccessfulOutcome__value_PR_X2SetupFailure, + UnsuccessfulOutcome__value_PR_ENDCX2SetupFailure, + UnsuccessfulOutcome__value_PR_ResourceStatusFailure, + UnsuccessfulOutcome__value_PR_ENBConfigurationUpdateFailure, + UnsuccessfulOutcome__value_PR_ENDCConfigurationUpdateFailure +} UnsuccessfulOutcome__value_PR; + +/* UnsuccessfulOutcome */ +typedef struct UnsuccessfulOutcome { + ProcedureCode_t procedureCode; + Criticality_t criticality; + struct UnsuccessfulOutcome__value { + UnsuccessfulOutcome__value_PR present; + union UnsuccessfulOutcome__value_u { + RICsubscriptionFailure_t RICsubscriptionFailure; + RICsubscriptionDeleteFailure_t RICsubscriptionDeleteFailure; + RICserviceUpdateFailure_t RICserviceUpdateFailure; + RICcontrolFailure_t RICcontrolFailure; + X2SetupFailure_t X2SetupFailure; + ENDCX2SetupFailure_t ENDCX2SetupFailure; + ResourceStatusFailure_t ResourceStatusFailure; + ENBConfigurationUpdateFailure_t ENBConfigurationUpdateFailure; + ENDCConfigurationUpdateFailure_t ENDCConfigurationUpdateFailure; + } 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 diff --git a/asn1c_defs/all-defs/UsableABSInformation.c b/asn1c_defs/all-defs/UsableABSInformation.c new file mode 100644 index 0000000..cf356b4 --- /dev/null +++ b/asn1c_defs/all-defs/UsableABSInformation.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "UsableABSInformation.h" + +#include "UsableABSInformationFDD.h" +#include "UsableABSInformationTDD.h" +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) */ + { 0, &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/asn1c_defs/all-defs/UsableABSInformation.h b/asn1c_defs/all-defs/UsableABSInformation.h new file mode 100644 index 0000000..f7598c6 --- /dev/null +++ b/asn1c_defs/all-defs/UsableABSInformation.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UsableABSInformation_H_ +#define _UsableABSInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 diff --git a/asn1c_defs/all-defs/UsableABSInformationFDD.c b/asn1c_defs/all-defs/UsableABSInformationFDD.c new file mode 100644 index 0000000..5ef8b40 --- /dev/null +++ b/asn1c_defs/all-defs/UsableABSInformationFDD.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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, + { 0, &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_8231P218, + 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/asn1c_defs/all-defs/UsableABSInformationFDD.h b/asn1c_defs/all-defs/UsableABSInformationFDD.h new file mode 100644 index 0000000..68b20cb --- /dev/null +++ b/asn1c_defs/all-defs/UsableABSInformationFDD.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UsableABSInformationFDD_H_ +#define _UsableABSInformationFDD_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/UsableABSInformationTDD.c b/asn1c_defs/all-defs/UsableABSInformationTDD.c new file mode 100644 index 0000000..8f640fd --- /dev/null +++ b/asn1c_defs/all-defs/UsableABSInformationTDD.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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, + { 0, &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_8231P219, + 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/asn1c_defs/all-defs/UsableABSInformationTDD.h b/asn1c_defs/all-defs/UsableABSInformationTDD.h new file mode 100644 index 0000000..5dd089a --- /dev/null +++ b/asn1c_defs/all-defs/UsableABSInformationTDD.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UsableABSInformationTDD_H_ +#define _UsableABSInformationTDD_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/UserPlaneTrafficActivityReport.c b/asn1c_defs/all-defs/UserPlaneTrafficActivityReport.c new file mode 100644 index 0000000..0c4f4ad --- /dev/null +++ b/asn1c_defs/all-defs/UserPlaneTrafficActivityReport.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "UserPlaneTrafficActivityReport.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_UserPlaneTrafficActivityReport_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_UserPlaneTrafficActivityReport_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/UserPlaneTrafficActivityReport.h b/asn1c_defs/all-defs/UserPlaneTrafficActivityReport.h new file mode 100644 index 0000000..06bed85 --- /dev/null +++ b/asn1c_defs/all-defs/UserPlaneTrafficActivityReport.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _UserPlaneTrafficActivityReport_H_ +#define _UserPlaneTrafficActivityReport_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/V2XServicesAuthorized.c b/asn1c_defs/all-defs/V2XServicesAuthorized.c new file mode 100644 index 0000000..93c44a5 --- /dev/null +++ b/asn1c_defs/all-defs/V2XServicesAuthorized.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8231P220, + 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/asn1c_defs/all-defs/V2XServicesAuthorized.h b/asn1c_defs/all-defs/V2XServicesAuthorized.h new file mode 100644 index 0000000..fd15455 --- /dev/null +++ b/asn1c_defs/all-defs/V2XServicesAuthorized.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _V2XServicesAuthorized_H_ +#define _V2XServicesAuthorized_H_ + + +#include + +/* Including external dependencies */ +#include "VehicleUE.h" +#include "PedestrianUE.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/VehicleUE.c b/asn1c_defs/all-defs/VehicleUE.c new file mode 100644 index 0000000..536a713 --- /dev/null +++ b/asn1c_defs/all-defs/VehicleUE.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "VehicleUE.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_VehicleUE_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_VehicleUE_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/VehicleUE.h b/asn1c_defs/all-defs/VehicleUE.h new file mode 100644 index 0000000..88b443e --- /dev/null +++ b/asn1c_defs/all-defs/VehicleUE.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _VehicleUE_H_ +#define _VehicleUE_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/WLANMeasConfig.c b/asn1c_defs/all-defs/WLANMeasConfig.c new file mode 100644 index 0000000..cce9713 --- /dev/null +++ b/asn1c_defs/all-defs/WLANMeasConfig.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "WLANMeasConfig.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +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 */ + { 0, &asn_PER_type_WLANMeasConfig_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_WLANMeasConfig_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/WLANMeasConfig.h b/asn1c_defs/all-defs/WLANMeasConfig.h new file mode 100644 index 0000000..f340c8b --- /dev/null +++ b/asn1c_defs/all-defs/WLANMeasConfig.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _WLANMeasConfig_H_ +#define _WLANMeasConfig_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/WLANMeasConfigNameList.c b/asn1c_defs/all-defs/WLANMeasConfigNameList.c new file mode 100644 index 0000000..47e9dda --- /dev/null +++ b/asn1c_defs/all-defs/WLANMeasConfigNameList.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "WLANMeasConfigNameList.h" + +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 */ + { 0, &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/asn1c_defs/all-defs/WLANMeasConfigNameList.h b/asn1c_defs/all-defs/WLANMeasConfigNameList.h new file mode 100644 index 0000000..7d0e912 --- /dev/null +++ b/asn1c_defs/all-defs/WLANMeasConfigNameList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _WLANMeasConfigNameList_H_ +#define _WLANMeasConfigNameList_H_ + + +#include + +/* Including external dependencies */ +#include "WLANName.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/WLANMeasurementConfiguration.c b/asn1c_defs/all-defs/WLANMeasurementConfiguration.c new file mode 100644 index 0000000..4704d10 --- /dev/null +++ b/asn1c_defs/all-defs/WLANMeasurementConfiguration.c @@ -0,0 +1,186 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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 */ + { 0, &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 */ + { 0, &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_8231P222, + 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/asn1c_defs/all-defs/WLANMeasurementConfiguration.h b/asn1c_defs/all-defs/WLANMeasurementConfiguration.h new file mode 100644 index 0000000..0adf5fe --- /dev/null +++ b/asn1c_defs/all-defs/WLANMeasurementConfiguration.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _WLANMeasurementConfiguration_H_ +#define _WLANMeasurementConfiguration_H_ + + +#include + +/* Including external dependencies */ +#include "WLANMeasConfig.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/WLANName.c b/asn1c_defs/all-defs/WLANName.c new file mode 100644 index 0000000..29c9c93 --- /dev/null +++ b/asn1c_defs/all-defs/WLANName.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &asn_PER_type_WLANName_constr_1, WLANName_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/WLANName.h b/asn1c_defs/all-defs/WLANName.h new file mode 100644 index 0000000..6505f93 --- /dev/null +++ b/asn1c_defs/all-defs/WLANName.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _WLANName_H_ +#define _WLANName_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/WT-UE-XwAP-ID.c b/asn1c_defs/all-defs/WT-UE-XwAP-ID.c new file mode 100644 index 0000000..c2d8aff --- /dev/null +++ b/asn1c_defs/all-defs/WT-UE-XwAP-ID.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &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/asn1c_defs/all-defs/WT-UE-XwAP-ID.h b/asn1c_defs/all-defs/WT-UE-XwAP-ID.h new file mode 100644 index 0000000..e282fd5 --- /dev/null +++ b/asn1c_defs/all-defs/WT-UE-XwAP-ID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _WT_UE_XwAP_ID_H_ +#define _WT_UE_XwAP_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/WTID-Long-Type2.c b/asn1c_defs/all-defs/WTID-Long-Type2.c new file mode 100644 index 0000000..a2eb16b --- /dev/null +++ b/asn1c_defs/all-defs/WTID-Long-Type2.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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. + */ +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 */ + { 0, &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/asn1c_defs/all-defs/WTID-Long-Type2.h b/asn1c_defs/all-defs/WTID-Long-Type2.h new file mode 100644 index 0000000..6d3f4f0 --- /dev/null +++ b/asn1c_defs/all-defs/WTID-Long-Type2.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _WTID_Long_Type2_H_ +#define _WTID_Long_Type2_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/WTID-Type1.c b/asn1c_defs/all-defs/WTID-Type1.c new file mode 100644 index 0000000..0a96d2d --- /dev/null +++ b/asn1c_defs/all-defs/WTID-Type1.c @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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, + { 0, &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/asn1c_defs/all-defs/WTID-Type1.h b/asn1c_defs/all-defs/WTID-Type1.h new file mode 100644 index 0000000..028d058 --- /dev/null +++ b/asn1c_defs/all-defs/WTID-Type1.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _WTID_Type1_H_ +#define _WTID_Type1_H_ + + +#include + +/* Including external dependencies */ +#include "PLMN-Identity.h" +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/WTID.c b/asn1c_defs/all-defs/WTID.c new file mode 100644 index 0000000..6de7775 --- /dev/null +++ b/asn1c_defs/all-defs/WTID.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "WTID.h" + +#include "WTID-Type1.h" +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) */ + { 0, &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/asn1c_defs/all-defs/WTID.h b/asn1c_defs/all-defs/WTID.h new file mode 100644 index 0000000..8d1f301 --- /dev/null +++ b/asn1c_defs/all-defs/WTID.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _WTID_H_ +#define _WTID_H_ + + +#include + +/* Including external dependencies */ +#include "WTID-Long-Type2.h" +#include + +#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 diff --git a/asn1c_defs/all-defs/WidebandCQI.c b/asn1c_defs/all-defs/WidebandCQI.c new file mode 100644 index 0000000..f5159d4 --- /dev/null +++ b/asn1c_defs/all-defs/WidebandCQI.c @@ -0,0 +1,104 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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, + { 0, &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_8231P221, + 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/asn1c_defs/all-defs/WidebandCQI.h b/asn1c_defs/all-defs/WidebandCQI.h new file mode 100644 index 0000000..da4a38f --- /dev/null +++ b/asn1c_defs/all-defs/WidebandCQI.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _WidebandCQI_H_ +#define _WidebandCQI_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/WidebandCQICodeword1.c b/asn1c_defs/all-defs/WidebandCQICodeword1.c new file mode 100644 index 0000000..bb708aa --- /dev/null +++ b/asn1c_defs/all-defs/WidebandCQICodeword1.c @@ -0,0 +1,122 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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_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 */ +}; +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, + { 0, &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, + { 0, &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) */ + { 0, &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/asn1c_defs/all-defs/WidebandCQICodeword1.h b/asn1c_defs/all-defs/WidebandCQICodeword1.h new file mode 100644 index 0000000..643f808 --- /dev/null +++ b/asn1c_defs/all-defs/WidebandCQICodeword1.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _WidebandCQICodeword1_H_ +#define _WidebandCQICodeword1_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#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 diff --git a/asn1c_defs/all-defs/X2AP-Message.c b/asn1c_defs/all-defs/X2AP-Message.c new file mode 100644 index 0000000..395d0a9 --- /dev/null +++ b/asn1c_defs/all-defs/X2AP-Message.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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/asn1c_defs/all-defs/X2AP-Message.h b/asn1c_defs/all-defs/X2AP-Message.h new file mode 100644 index 0000000..9c10429 --- /dev/null +++ b/asn1c_defs/all-defs/X2AP-Message.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _X2AP_Message_H_ +#define _X2AP_Message_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/X2AP-PDU.c b/asn1c_defs/all-defs/X2AP-PDU.c new file mode 100644 index 0000000..d16ee23 --- /dev/null +++ b/asn1c_defs/all-defs/X2AP-PDU.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Descriptions" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "X2AP-PDU.h" + +#include "X2InitiatingMessage.h" +#include "X2SuccessfulOutcome.h" +#include "X2UnsuccessfulOutcome.h" +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_X2InitiatingMessage, + 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_X2SuccessfulOutcome, + 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_X2UnsuccessfulOutcome, + 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) */ + { 0, &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/asn1c_defs/all-defs/X2AP-PDU.h b/asn1c_defs/all-defs/X2AP-PDU.h new file mode 100644 index 0000000..4dbad17 --- /dev/null +++ b/asn1c_defs/all-defs/X2AP-PDU.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Descriptions" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _X2AP_PDU_H_ +#define _X2AP_PDU_H_ + + +#include + +/* Including external dependencies */ +#include + +#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 X2InitiatingMessage; +struct X2SuccessfulOutcome; +struct X2UnsuccessfulOutcome; + +/* X2AP-PDU */ +typedef struct X2AP_PDU { + X2AP_PDU_PR present; + union X2AP_PDU_u { + struct X2InitiatingMessage *initiatingMessage; + struct X2SuccessfulOutcome *successfulOutcome; + struct X2UnsuccessfulOutcome *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 diff --git a/asn1c_defs/all-defs/X2APMessageTransfer.c b/asn1c_defs/all-defs/X2APMessageTransfer.c new file mode 100644 index 0000000..890ba6a --- /dev/null +++ b/asn1c_defs/all-defs/X2APMessageTransfer.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P43, + 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/asn1c_defs/all-defs/X2APMessageTransfer.h b/asn1c_defs/all-defs/X2APMessageTransfer.h new file mode 100644 index 0000000..60f2cb6 --- /dev/null +++ b/asn1c_defs/all-defs/X2APMessageTransfer.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _X2APMessageTransfer_H_ +#define _X2APMessageTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* X2APMessageTransfer */ +typedef struct X2APMessageTransfer { + ProtocolIE_Container_8180P43_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 diff --git a/asn1c_defs/all-defs/X2BenefitValue.c b/asn1c_defs/all-defs/X2BenefitValue.c new file mode 100644 index 0000000..ff7efea --- /dev/null +++ b/asn1c_defs/all-defs/X2BenefitValue.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_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 */ + { 0, &asn_PER_type_X2BenefitValue_constr_1, X2BenefitValue_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/asn1c_defs/all-defs/X2BenefitValue.h b/asn1c_defs/all-defs/X2BenefitValue.h new file mode 100644 index 0000000..9a8f456 --- /dev/null +++ b/asn1c_defs/all-defs/X2BenefitValue.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-IEs" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _X2BenefitValue_H_ +#define _X2BenefitValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#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; +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 diff --git a/asn1c_defs/all-defs/X2InitiatingMessage.c b/asn1c_defs/all-defs/X2InitiatingMessage.c new file mode 100644 index 0000000..c3190fc --- /dev/null +++ b/asn1c_defs/all-defs/X2InitiatingMessage.c @@ -0,0 +1,1018 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Descriptions" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "X2InitiatingMessage.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[] = { + { "&X2InitiatingMessage", aioc__type, &asn_DEF_HandoverRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_HandoverRequestAcknowledge }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_ResetRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_reset }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_X2SetupRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_X2SetupResponse }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_ResourceStatusRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_ResourceStatusResponse }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_ENBConfigurationUpdate }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_ENBConfigurationUpdateAcknowledge }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_MobilityChangeRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_MobilityChangeAcknowledge }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_CellActivationRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_CellActivationResponse }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SeNBAdditionRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_SeNBAdditionRequestAcknowledge }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SeNBModificationRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_SeNBModificationRequestAcknowledge }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SeNBModificationRequired }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_SeNBModificationConfirm }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SeNBReleaseRequired }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_SeNBReleaseConfirm }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_seNBinitiatedSeNBRelease }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_X2RemovalRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_X2RemovalResponse }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_RetrieveUEContextRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_RetrieveUEContextResponse }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SgNBAdditionRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_SgNBAdditionRequestAcknowledge }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SgNBModificationRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_SgNBModificationRequestAcknowledge }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SgNBModificationRequired }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_SgNBModificationConfirm }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SgNBReleaseRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_SgNBReleaseRequestAcknowledge }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SgNBReleaseRequired }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_SgNBReleaseConfirm }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_18_id_sgNBinitiatedSgNBRelease }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_18_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SgNBChangeRequired }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_SgNBChangeConfirm }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_ENDCX2SetupRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_ENDCX2SetupResponse }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_ENDCConfigurationUpdate }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_ENDCConfigurationUpdateAcknowledge }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_ENDCCellActivationRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_ENDCCellActivationResponse }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_ENDCPartialResetRequired }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_ENDCPartialResetConfirm }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_23_id_endcPartialReset }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_23_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_EUTRANRCellResourceCoordinationRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_EUTRANRCellResourceCoordinationResponse }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_24_id_eUTRANRCellResourceCoordination }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_24_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_ENDCX2RemovalRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_ENDCX2RemovalResponse }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SNStatusTransfer }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_26_id_snStatusTransfer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_26_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_UEContextRelease }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_27_id_uEContextRelease }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_27_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_HandoverCancel }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_28_id_handoverCancel }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_28_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_29_id_errorIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_29_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_ResourceStatusUpdate }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_30_id_resourceStatusReporting }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_30_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_LoadInformation }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_31_id_loadIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_31_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_PrivateMessage }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_32_id_privateMessage }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_32_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_RLFIndication }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_33_id_rLFIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_33_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_HandoverReport }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_34_id_handoverReport }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_34_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_X2Release }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_35_id_x2Release }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_35_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_X2APMessageTransfer }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_36_id_x2APMessageTransfer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_36_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SeNBReconfigurationComplete }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_37_id_seNBReconfigurationCompletion }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_37_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SeNBReleaseRequest }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_38_id_meNBinitiatedSeNBRelease }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_38_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SeNBCounterCheckRequest }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_39_id_seNBCounterCheck }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_39_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SgNBReconfigurationComplete }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_40_id_sgNBReconfigurationCompletion }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_40_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SgNBCounterCheckRequest }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_41_id_sgNBCounterCheck }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_41_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_RRCTransfer }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_42_id_rRCTransfer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_42_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SecondaryRATDataUsageReport }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_43_id_secondaryRATDataUsageReport }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_43_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SgNBActivityNotification }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_44_id_SgNBActivityNotification }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_44_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_DataForwardingAddressIndication }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_45_id_dataForwardingAddressIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_45_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_GNBStatusIndication }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&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_X2InitiatingMessage_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 X2InitiatingMessage, 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_X2InitiatingMessage_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; /* &X2InitiatingMessage */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2InitiatingMessage, 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_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_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_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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__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 X2InitiatingMessage__value), + offsetof(struct X2InitiatingMessage__value, _asn_ctx), + offsetof(struct X2InitiatingMessage__value, present), + sizeof(((struct X2InitiatingMessage__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_X2InitiatingMessage_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct X2InitiatingMessage, procedureCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProcedureCode, + 0, + { 0, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, + 0, 0, /* No default value */ + "procedureCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct X2InitiatingMessage, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_X2InitiatingMessage_criticality_type, + { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct X2InitiatingMessage, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_4, + select_X2InitiatingMessage_value_type, + { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_X2InitiatingMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_X2InitiatingMessage_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_X2InitiatingMessage_specs_1 = { + sizeof(struct X2InitiatingMessage), + offsetof(struct X2InitiatingMessage, _asn_ctx), + asn_MAP_X2InitiatingMessage_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_X2InitiatingMessage = { + "X2InitiatingMessage", + "X2InitiatingMessage", + &asn_OP_SEQUENCE, + asn_DEF_X2InitiatingMessage_tags_1, + sizeof(asn_DEF_X2InitiatingMessage_tags_1) + /sizeof(asn_DEF_X2InitiatingMessage_tags_1[0]), /* 1 */ + asn_DEF_X2InitiatingMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_X2InitiatingMessage_tags_1) + /sizeof(asn_DEF_X2InitiatingMessage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_X2InitiatingMessage_1, + 3, /* Elements count */ + &asn_SPC_X2InitiatingMessage_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/X2InitiatingMessage.h b/asn1c_defs/all-defs/X2InitiatingMessage.h new file mode 100644 index 0000000..0d86be8 --- /dev/null +++ b/asn1c_defs/all-defs/X2InitiatingMessage.h @@ -0,0 +1,242 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Descriptions" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _X2InitiatingMessage_H_ +#define _X2InitiatingMessage_H_ + + +#include + +/* Including external dependencies */ +#include "ProcedureCode.h" +#include "Criticality.h" +#include +#include +#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 +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum X2InitiatingMessage__value_PR { + X2InitiatingMessage__value_PR_NOTHING, /* No components present */ + X2InitiatingMessage__value_PR_HandoverRequest, + X2InitiatingMessage__value_PR_ResetRequest, + X2InitiatingMessage__value_PR_X2SetupRequest, + X2InitiatingMessage__value_PR_ResourceStatusRequest, + X2InitiatingMessage__value_PR_ENBConfigurationUpdate, + X2InitiatingMessage__value_PR_MobilityChangeRequest, + X2InitiatingMessage__value_PR_CellActivationRequest, + X2InitiatingMessage__value_PR_SeNBAdditionRequest, + X2InitiatingMessage__value_PR_SeNBModificationRequest, + X2InitiatingMessage__value_PR_SeNBModificationRequired, + X2InitiatingMessage__value_PR_SeNBReleaseRequired, + X2InitiatingMessage__value_PR_X2RemovalRequest, + X2InitiatingMessage__value_PR_RetrieveUEContextRequest, + X2InitiatingMessage__value_PR_SgNBAdditionRequest, + X2InitiatingMessage__value_PR_SgNBModificationRequest, + X2InitiatingMessage__value_PR_SgNBModificationRequired, + X2InitiatingMessage__value_PR_SgNBReleaseRequest, + X2InitiatingMessage__value_PR_SgNBReleaseRequired, + X2InitiatingMessage__value_PR_SgNBChangeRequired, + X2InitiatingMessage__value_PR_ENDCX2SetupRequest, + X2InitiatingMessage__value_PR_ENDCConfigurationUpdate, + X2InitiatingMessage__value_PR_ENDCCellActivationRequest, + X2InitiatingMessage__value_PR_ENDCPartialResetRequired, + X2InitiatingMessage__value_PR_EUTRANRCellResourceCoordinationRequest, + X2InitiatingMessage__value_PR_ENDCX2RemovalRequest, + X2InitiatingMessage__value_PR_SNStatusTransfer, + X2InitiatingMessage__value_PR_UEContextRelease, + X2InitiatingMessage__value_PR_HandoverCancel, + X2InitiatingMessage__value_PR_ErrorIndication, + X2InitiatingMessage__value_PR_ResourceStatusUpdate, + X2InitiatingMessage__value_PR_LoadInformation, + X2InitiatingMessage__value_PR_PrivateMessage, + X2InitiatingMessage__value_PR_RLFIndication, + X2InitiatingMessage__value_PR_HandoverReport, + X2InitiatingMessage__value_PR_X2Release, + X2InitiatingMessage__value_PR_X2APMessageTransfer, + X2InitiatingMessage__value_PR_SeNBReconfigurationComplete, + X2InitiatingMessage__value_PR_SeNBReleaseRequest, + X2InitiatingMessage__value_PR_SeNBCounterCheckRequest, + X2InitiatingMessage__value_PR_SgNBReconfigurationComplete, + X2InitiatingMessage__value_PR_SgNBCounterCheckRequest, + X2InitiatingMessage__value_PR_RRCTransfer, + X2InitiatingMessage__value_PR_SecondaryRATDataUsageReport, + X2InitiatingMessage__value_PR_SgNBActivityNotification, + X2InitiatingMessage__value_PR_DataForwardingAddressIndication, + X2InitiatingMessage__value_PR_GNBStatusIndication +} X2InitiatingMessage__value_PR; + +/* X2InitiatingMessage */ +typedef struct X2InitiatingMessage { + ProcedureCode_t procedureCode; + Criticality_t criticality; + struct X2InitiatingMessage__value { + X2InitiatingMessage__value_PR present; + union X2InitiatingMessage__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; +} X2InitiatingMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_X2InitiatingMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_X2InitiatingMessage_specs_1; +extern asn_TYPE_member_t asn_MBR_X2InitiatingMessage_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _X2InitiatingMessage_H_ */ +#include diff --git a/asn1c_defs/all-defs/X2Release.c b/asn1c_defs/all-defs/X2Release.c new file mode 100644 index 0000000..08778a6 --- /dev/null +++ b/asn1c_defs/all-defs/X2Release.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P42, + 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/asn1c_defs/all-defs/X2Release.h b/asn1c_defs/all-defs/X2Release.h new file mode 100644 index 0000000..e109ae1 --- /dev/null +++ b/asn1c_defs/all-defs/X2Release.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _X2Release_H_ +#define _X2Release_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* X2Release */ +typedef struct X2Release { + ProtocolIE_Container_8180P42_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 diff --git a/asn1c_defs/all-defs/X2RemovalFailure.c b/asn1c_defs/all-defs/X2RemovalFailure.c new file mode 100644 index 0000000..b31ecab --- /dev/null +++ b/asn1c_defs/all-defs/X2RemovalFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P60, + 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/asn1c_defs/all-defs/X2RemovalFailure.h b/asn1c_defs/all-defs/X2RemovalFailure.h new file mode 100644 index 0000000..36c4c4f --- /dev/null +++ b/asn1c_defs/all-defs/X2RemovalFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _X2RemovalFailure_H_ +#define _X2RemovalFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* X2RemovalFailure */ +typedef struct X2RemovalFailure { + ProtocolIE_Container_8180P60_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 diff --git a/asn1c_defs/all-defs/X2RemovalRequest.c b/asn1c_defs/all-defs/X2RemovalRequest.c new file mode 100644 index 0000000..1d19798 --- /dev/null +++ b/asn1c_defs/all-defs/X2RemovalRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P58, + 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/asn1c_defs/all-defs/X2RemovalRequest.h b/asn1c_defs/all-defs/X2RemovalRequest.h new file mode 100644 index 0000000..f0bcd92 --- /dev/null +++ b/asn1c_defs/all-defs/X2RemovalRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _X2RemovalRequest_H_ +#define _X2RemovalRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* X2RemovalRequest */ +typedef struct X2RemovalRequest { + ProtocolIE_Container_8180P58_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 diff --git a/asn1c_defs/all-defs/X2RemovalResponse.c b/asn1c_defs/all-defs/X2RemovalResponse.c new file mode 100644 index 0000000..a9361f7 --- /dev/null +++ b/asn1c_defs/all-defs/X2RemovalResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P59, + 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/asn1c_defs/all-defs/X2RemovalResponse.h b/asn1c_defs/all-defs/X2RemovalResponse.h new file mode 100644 index 0000000..e7139b9 --- /dev/null +++ b/asn1c_defs/all-defs/X2RemovalResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _X2RemovalResponse_H_ +#define _X2RemovalResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* X2RemovalResponse */ +typedef struct X2RemovalResponse { + ProtocolIE_Container_8180P59_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 diff --git a/asn1c_defs/all-defs/X2SetupFailure.c b/asn1c_defs/all-defs/X2SetupFailure.c new file mode 100644 index 0000000..b1ac9ef --- /dev/null +++ b/asn1c_defs/all-defs/X2SetupFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P26, + 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/asn1c_defs/all-defs/X2SetupFailure.h b/asn1c_defs/all-defs/X2SetupFailure.h new file mode 100644 index 0000000..07a92d8 --- /dev/null +++ b/asn1c_defs/all-defs/X2SetupFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _X2SetupFailure_H_ +#define _X2SetupFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* X2SetupFailure */ +typedef struct X2SetupFailure { + ProtocolIE_Container_8180P26_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 diff --git a/asn1c_defs/all-defs/X2SetupRequest.c b/asn1c_defs/all-defs/X2SetupRequest.c new file mode 100644 index 0000000..bd2d863 --- /dev/null +++ b/asn1c_defs/all-defs/X2SetupRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P24, + 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/asn1c_defs/all-defs/X2SetupRequest.h b/asn1c_defs/all-defs/X2SetupRequest.h new file mode 100644 index 0000000..32113f4 --- /dev/null +++ b/asn1c_defs/all-defs/X2SetupRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _X2SetupRequest_H_ +#define _X2SetupRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* X2SetupRequest */ +typedef struct X2SetupRequest { + ProtocolIE_Container_8180P24_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 diff --git a/asn1c_defs/all-defs/X2SetupResponse.c b/asn1c_defs/all-defs/X2SetupResponse.c new file mode 100644 index 0000000..4f2b89b --- /dev/null +++ b/asn1c_defs/all-defs/X2SetupResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#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_8180P25, + 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/asn1c_defs/all-defs/X2SetupResponse.h b/asn1c_defs/all-defs/X2SetupResponse.h new file mode 100644 index 0000000..b66b5ed --- /dev/null +++ b/asn1c_defs/all-defs/X2SetupResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Contents" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _X2SetupResponse_H_ +#define _X2SetupResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* X2SetupResponse */ +typedef struct X2SetupResponse { + ProtocolIE_Container_8180P25_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 diff --git a/asn1c_defs/all-defs/X2SuccessfulOutcome.c b/asn1c_defs/all-defs/X2SuccessfulOutcome.c new file mode 100644 index 0000000..a5dabf5 --- /dev/null +++ b/asn1c_defs/all-defs/X2SuccessfulOutcome.c @@ -0,0 +1,808 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Descriptions" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "X2SuccessfulOutcome.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[] = { + { "&X2InitiatingMessage", aioc__type, &asn_DEF_HandoverRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_HandoverRequestAcknowledge }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_ResetRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_reset }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_X2SetupRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_X2SetupResponse }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_ResourceStatusRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_ResourceStatusResponse }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_ENBConfigurationUpdate }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_ENBConfigurationUpdateAcknowledge }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_MobilityChangeRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_MobilityChangeAcknowledge }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_CellActivationRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_CellActivationResponse }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SeNBAdditionRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_SeNBAdditionRequestAcknowledge }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SeNBModificationRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_SeNBModificationRequestAcknowledge }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SeNBModificationRequired }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_SeNBModificationConfirm }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SeNBReleaseRequired }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_SeNBReleaseConfirm }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_seNBinitiatedSeNBRelease }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_X2RemovalRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_X2RemovalResponse }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_RetrieveUEContextRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_RetrieveUEContextResponse }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SgNBAdditionRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_SgNBAdditionRequestAcknowledge }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SgNBModificationRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_SgNBModificationRequestAcknowledge }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SgNBModificationRequired }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_SgNBModificationConfirm }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SgNBReleaseRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_SgNBReleaseRequestAcknowledge }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SgNBReleaseRequired }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_SgNBReleaseConfirm }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_18_id_sgNBinitiatedSgNBRelease }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_18_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SgNBChangeRequired }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_SgNBChangeConfirm }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_ENDCX2SetupRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_ENDCX2SetupResponse }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_ENDCConfigurationUpdate }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_ENDCConfigurationUpdateAcknowledge }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_ENDCCellActivationRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_ENDCCellActivationResponse }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_ENDCPartialResetRequired }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_ENDCPartialResetConfirm }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_23_id_endcPartialReset }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_23_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_EUTRANRCellResourceCoordinationRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_EUTRANRCellResourceCoordinationResponse }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_24_id_eUTRANRCellResourceCoordination }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_24_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_ENDCX2RemovalRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_ENDCX2RemovalResponse }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SNStatusTransfer }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_26_id_snStatusTransfer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_26_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_UEContextRelease }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_27_id_uEContextRelease }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_27_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_HandoverCancel }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_28_id_handoverCancel }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_28_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_29_id_errorIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_29_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_ResourceStatusUpdate }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_30_id_resourceStatusReporting }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_30_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_LoadInformation }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_31_id_loadIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_31_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_PrivateMessage }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_32_id_privateMessage }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_32_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_RLFIndication }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_33_id_rLFIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_33_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_HandoverReport }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_34_id_handoverReport }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_34_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_X2Release }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_35_id_x2Release }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_35_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_X2APMessageTransfer }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_36_id_x2APMessageTransfer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_36_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SeNBReconfigurationComplete }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_37_id_seNBReconfigurationCompletion }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_37_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SeNBReleaseRequest }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_38_id_meNBinitiatedSeNBRelease }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_38_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SeNBCounterCheckRequest }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_39_id_seNBCounterCheck }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_39_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SgNBReconfigurationComplete }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_40_id_sgNBReconfigurationCompletion }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_40_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SgNBCounterCheckRequest }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_41_id_sgNBCounterCheck }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_41_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_RRCTransfer }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_42_id_rRCTransfer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_42_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SecondaryRATDataUsageReport }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_43_id_secondaryRATDataUsageReport }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_43_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SgNBActivityNotification }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_44_id_SgNBActivityNotification }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_44_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_DataForwardingAddressIndication }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_45_id_dataForwardingAddressIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_45_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_GNBStatusIndication }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&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_X2SuccessfulOutcome_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 X2SuccessfulOutcome, 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_X2SuccessfulOutcome_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; /* &X2SuccessfulOutcome */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2SuccessfulOutcome, 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_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_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_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 X2SuccessfulOutcome__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 X2SuccessfulOutcome__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 X2SuccessfulOutcome__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 X2SuccessfulOutcome__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 X2SuccessfulOutcome__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 X2SuccessfulOutcome__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 X2SuccessfulOutcome__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 X2SuccessfulOutcome__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 X2SuccessfulOutcome__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 X2SuccessfulOutcome__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 X2SuccessfulOutcome__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 X2SuccessfulOutcome__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 X2SuccessfulOutcome__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 X2SuccessfulOutcome__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 X2SuccessfulOutcome__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 X2SuccessfulOutcome__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 X2SuccessfulOutcome__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 X2SuccessfulOutcome__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 X2SuccessfulOutcome__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 X2SuccessfulOutcome__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 X2SuccessfulOutcome__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 X2SuccessfulOutcome__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 X2SuccessfulOutcome__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 X2SuccessfulOutcome__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 X2SuccessfulOutcome__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 X2SuccessfulOutcome__value), + offsetof(struct X2SuccessfulOutcome__value, _asn_ctx), + offsetof(struct X2SuccessfulOutcome__value, present), + sizeof(((struct X2SuccessfulOutcome__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_X2SuccessfulOutcome_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct X2SuccessfulOutcome, procedureCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProcedureCode, + 0, + { 0, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, + 0, 0, /* No default value */ + "procedureCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct X2SuccessfulOutcome, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_X2SuccessfulOutcome_criticality_type, + { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct X2SuccessfulOutcome, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_4, + select_X2SuccessfulOutcome_value_type, + { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_X2SuccessfulOutcome_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_X2SuccessfulOutcome_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_X2SuccessfulOutcome_specs_1 = { + sizeof(struct X2SuccessfulOutcome), + offsetof(struct X2SuccessfulOutcome, _asn_ctx), + asn_MAP_X2SuccessfulOutcome_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_X2SuccessfulOutcome = { + "X2SuccessfulOutcome", + "X2SuccessfulOutcome", + &asn_OP_SEQUENCE, + asn_DEF_X2SuccessfulOutcome_tags_1, + sizeof(asn_DEF_X2SuccessfulOutcome_tags_1) + /sizeof(asn_DEF_X2SuccessfulOutcome_tags_1[0]), /* 1 */ + asn_DEF_X2SuccessfulOutcome_tags_1, /* Same as above */ + sizeof(asn_DEF_X2SuccessfulOutcome_tags_1) + /sizeof(asn_DEF_X2SuccessfulOutcome_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_X2SuccessfulOutcome_1, + 3, /* Elements count */ + &asn_SPC_X2SuccessfulOutcome_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/X2SuccessfulOutcome.h b/asn1c_defs/all-defs/X2SuccessfulOutcome.h new file mode 100644 index 0000000..de85d53 --- /dev/null +++ b/asn1c_defs/all-defs/X2SuccessfulOutcome.h @@ -0,0 +1,200 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Descriptions" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _X2SuccessfulOutcome_H_ +#define _X2SuccessfulOutcome_H_ + + +#include + +/* Including external dependencies */ +#include "ProcedureCode.h" +#include "Criticality.h" +#include +#include +#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 +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum X2SuccessfulOutcome__value_PR { + X2SuccessfulOutcome__value_PR_NOTHING, /* No components present */ + X2SuccessfulOutcome__value_PR_HandoverRequestAcknowledge, + X2SuccessfulOutcome__value_PR_ResetResponse, + X2SuccessfulOutcome__value_PR_X2SetupResponse, + X2SuccessfulOutcome__value_PR_ResourceStatusResponse, + X2SuccessfulOutcome__value_PR_ENBConfigurationUpdateAcknowledge, + X2SuccessfulOutcome__value_PR_MobilityChangeAcknowledge, + X2SuccessfulOutcome__value_PR_CellActivationResponse, + X2SuccessfulOutcome__value_PR_SeNBAdditionRequestAcknowledge, + X2SuccessfulOutcome__value_PR_SeNBModificationRequestAcknowledge, + X2SuccessfulOutcome__value_PR_SeNBModificationConfirm, + X2SuccessfulOutcome__value_PR_SeNBReleaseConfirm, + X2SuccessfulOutcome__value_PR_X2RemovalResponse, + X2SuccessfulOutcome__value_PR_RetrieveUEContextResponse, + X2SuccessfulOutcome__value_PR_SgNBAdditionRequestAcknowledge, + X2SuccessfulOutcome__value_PR_SgNBModificationRequestAcknowledge, + X2SuccessfulOutcome__value_PR_SgNBModificationConfirm, + X2SuccessfulOutcome__value_PR_SgNBReleaseRequestAcknowledge, + X2SuccessfulOutcome__value_PR_SgNBReleaseConfirm, + X2SuccessfulOutcome__value_PR_SgNBChangeConfirm, + X2SuccessfulOutcome__value_PR_ENDCX2SetupResponse, + X2SuccessfulOutcome__value_PR_ENDCConfigurationUpdateAcknowledge, + X2SuccessfulOutcome__value_PR_ENDCCellActivationResponse, + X2SuccessfulOutcome__value_PR_ENDCPartialResetConfirm, + X2SuccessfulOutcome__value_PR_EUTRANRCellResourceCoordinationResponse, + X2SuccessfulOutcome__value_PR_ENDCX2RemovalResponse +} X2SuccessfulOutcome__value_PR; + +/* X2SuccessfulOutcome */ +typedef struct X2SuccessfulOutcome { + ProcedureCode_t procedureCode; + Criticality_t criticality; + struct X2SuccessfulOutcome__value { + X2SuccessfulOutcome__value_PR present; + union X2SuccessfulOutcome__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; +} X2SuccessfulOutcome_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_X2SuccessfulOutcome; +extern asn_SEQUENCE_specifics_t asn_SPC_X2SuccessfulOutcome_specs_1; +extern asn_TYPE_member_t asn_MBR_X2SuccessfulOutcome_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _X2SuccessfulOutcome_H_ */ +#include diff --git a/asn1c_defs/all-defs/X2UnsuccessfulOutcome.c b/asn1c_defs/all-defs/X2UnsuccessfulOutcome.c new file mode 100644 index 0000000..3a043dc --- /dev/null +++ b/asn1c_defs/all-defs/X2UnsuccessfulOutcome.c @@ -0,0 +1,758 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Descriptions" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#include "X2UnsuccessfulOutcome.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[] = { + { "&X2InitiatingMessage", aioc__type, &asn_DEF_HandoverRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_HandoverRequestAcknowledge }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_ResetRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_reset }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_X2SetupRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_X2SetupResponse }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_ResourceStatusRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_ResourceStatusResponse }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_ENBConfigurationUpdate }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_ENBConfigurationUpdateAcknowledge }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_MobilityChangeRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_MobilityChangeAcknowledge }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_CellActivationRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_CellActivationResponse }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SeNBAdditionRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_SeNBAdditionRequestAcknowledge }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SeNBModificationRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_SeNBModificationRequestAcknowledge }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SeNBModificationRequired }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_SeNBModificationConfirm }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SeNBReleaseRequired }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_SeNBReleaseConfirm }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_seNBinitiatedSeNBRelease }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_X2RemovalRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_X2RemovalResponse }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_RetrieveUEContextRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_RetrieveUEContextResponse }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SgNBAdditionRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_SgNBAdditionRequestAcknowledge }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SgNBModificationRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_SgNBModificationRequestAcknowledge }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SgNBModificationRequired }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_SgNBModificationConfirm }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SgNBReleaseRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_SgNBReleaseRequestAcknowledge }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SgNBReleaseRequired }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_SgNBReleaseConfirm }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_18_id_sgNBinitiatedSgNBRelease }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_18_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SgNBChangeRequired }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_SgNBChangeConfirm }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_ENDCX2SetupRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_ENDCX2SetupResponse }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_ENDCConfigurationUpdate }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_ENDCConfigurationUpdateAcknowledge }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_ENDCCellActivationRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_ENDCCellActivationResponse }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_ENDCPartialResetRequired }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_ENDCPartialResetConfirm }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_23_id_endcPartialReset }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_23_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_EUTRANRCellResourceCoordinationRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_EUTRANRCellResourceCoordinationResponse }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_24_id_eUTRANRCellResourceCoordination }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_24_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_ENDCX2RemovalRequest }, + { "&X2SuccessfulOutcome", aioc__type, &asn_DEF_ENDCX2RemovalResponse }, + { "&X2UnsuccessfulOutcome", 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 }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SNStatusTransfer }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_26_id_snStatusTransfer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_26_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_UEContextRelease }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_27_id_uEContextRelease }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_27_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_HandoverCancel }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_28_id_handoverCancel }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_28_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_29_id_errorIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_29_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_ResourceStatusUpdate }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_30_id_resourceStatusReporting }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_30_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_LoadInformation }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_31_id_loadIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_31_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_PrivateMessage }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_32_id_privateMessage }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_32_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_RLFIndication }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_33_id_rLFIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_33_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_HandoverReport }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_34_id_handoverReport }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_34_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_X2Release }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_35_id_x2Release }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_35_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_X2APMessageTransfer }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_36_id_x2APMessageTransfer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_36_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SeNBReconfigurationComplete }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_37_id_seNBReconfigurationCompletion }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_37_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SeNBReleaseRequest }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_38_id_meNBinitiatedSeNBRelease }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_38_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SeNBCounterCheckRequest }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_39_id_seNBCounterCheck }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_39_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SgNBReconfigurationComplete }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_40_id_sgNBReconfigurationCompletion }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_40_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SgNBCounterCheckRequest }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_41_id_sgNBCounterCheck }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_41_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_RRCTransfer }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_42_id_rRCTransfer }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_42_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SecondaryRATDataUsageReport }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_43_id_secondaryRATDataUsageReport }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_43_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_SgNBActivityNotification }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_44_id_SgNBActivityNotification }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_44_reject }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_DataForwardingAddressIndication }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_45_id_dataForwardingAddressIndication }, + { "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_45_ignore }, + { "&X2InitiatingMessage", aioc__type, &asn_DEF_GNBStatusIndication }, + { "&X2SuccessfulOutcome", }, + { "&X2UnsuccessfulOutcome", }, + { "&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_X2UnsuccessfulOutcome_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 X2UnsuccessfulOutcome, 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_X2UnsuccessfulOutcome_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; /* &X2UnsuccessfulOutcome */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct X2UnsuccessfulOutcome, 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_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_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_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 X2UnsuccessfulOutcome__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 X2UnsuccessfulOutcome__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 X2UnsuccessfulOutcome__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 X2UnsuccessfulOutcome__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 X2UnsuccessfulOutcome__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 X2UnsuccessfulOutcome__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 X2UnsuccessfulOutcome__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 X2UnsuccessfulOutcome__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 X2UnsuccessfulOutcome__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 X2UnsuccessfulOutcome__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 X2UnsuccessfulOutcome__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 X2UnsuccessfulOutcome__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 X2UnsuccessfulOutcome__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 X2UnsuccessfulOutcome__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 X2UnsuccessfulOutcome__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 X2UnsuccessfulOutcome__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 X2UnsuccessfulOutcome__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 X2UnsuccessfulOutcome__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 X2UnsuccessfulOutcome__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 X2UnsuccessfulOutcome__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 X2UnsuccessfulOutcome__value), + offsetof(struct X2UnsuccessfulOutcome__value, _asn_ctx), + offsetof(struct X2UnsuccessfulOutcome__value, present), + sizeof(((struct X2UnsuccessfulOutcome__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_X2UnsuccessfulOutcome_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct X2UnsuccessfulOutcome, procedureCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProcedureCode, + 0, + { 0, &asn_PER_memb_procedureCode_constr_2, memb_procedureCode_constraint_1 }, + 0, 0, /* No default value */ + "procedureCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct X2UnsuccessfulOutcome, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Criticality, + select_X2UnsuccessfulOutcome_criticality_type, + { 0, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct X2UnsuccessfulOutcome, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_4, + select_X2UnsuccessfulOutcome_value_type, + { 0, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_X2UnsuccessfulOutcome_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_X2UnsuccessfulOutcome_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_X2UnsuccessfulOutcome_specs_1 = { + sizeof(struct X2UnsuccessfulOutcome), + offsetof(struct X2UnsuccessfulOutcome, _asn_ctx), + asn_MAP_X2UnsuccessfulOutcome_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_X2UnsuccessfulOutcome = { + "X2UnsuccessfulOutcome", + "X2UnsuccessfulOutcome", + &asn_OP_SEQUENCE, + asn_DEF_X2UnsuccessfulOutcome_tags_1, + sizeof(asn_DEF_X2UnsuccessfulOutcome_tags_1) + /sizeof(asn_DEF_X2UnsuccessfulOutcome_tags_1[0]), /* 1 */ + asn_DEF_X2UnsuccessfulOutcome_tags_1, /* Same as above */ + sizeof(asn_DEF_X2UnsuccessfulOutcome_tags_1) + /sizeof(asn_DEF_X2UnsuccessfulOutcome_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_X2UnsuccessfulOutcome_1, + 3, /* Elements count */ + &asn_SPC_X2UnsuccessfulOutcome_specs_1 /* Additional specs */ +}; + diff --git a/asn1c_defs/all-defs/X2UnsuccessfulOutcome.h b/asn1c_defs/all-defs/X2UnsuccessfulOutcome.h new file mode 100644 index 0000000..ddcd520 --- /dev/null +++ b/asn1c_defs/all-defs/X2UnsuccessfulOutcome.h @@ -0,0 +1,190 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "X2AP-PDU-Descriptions" + * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn" + * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER` + */ + +#ifndef _X2UnsuccessfulOutcome_H_ +#define _X2UnsuccessfulOutcome_H_ + + +#include + +/* Including external dependencies */ +#include "ProcedureCode.h" +#include "Criticality.h" +#include +#include +#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 +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum X2UnsuccessfulOutcome__value_PR { + X2UnsuccessfulOutcome__value_PR_NOTHING, /* No components present */ + X2UnsuccessfulOutcome__value_PR_HandoverPreparationFailure, + X2UnsuccessfulOutcome__value_PR_X2SetupFailure, + X2UnsuccessfulOutcome__value_PR_ResourceStatusFailure, + X2UnsuccessfulOutcome__value_PR_ENBConfigurationUpdateFailure, + X2UnsuccessfulOutcome__value_PR_MobilityChangeFailure, + X2UnsuccessfulOutcome__value_PR_CellActivationFailure, + X2UnsuccessfulOutcome__value_PR_SeNBAdditionRequestReject, + X2UnsuccessfulOutcome__value_PR_SeNBModificationRequestReject, + X2UnsuccessfulOutcome__value_PR_SeNBModificationRefuse, + X2UnsuccessfulOutcome__value_PR_X2RemovalFailure, + X2UnsuccessfulOutcome__value_PR_RetrieveUEContextFailure, + X2UnsuccessfulOutcome__value_PR_SgNBAdditionRequestReject, + X2UnsuccessfulOutcome__value_PR_SgNBModificationRequestReject, + X2UnsuccessfulOutcome__value_PR_SgNBModificationRefuse, + X2UnsuccessfulOutcome__value_PR_SgNBReleaseRequestReject, + X2UnsuccessfulOutcome__value_PR_SgNBChangeRefuse, + X2UnsuccessfulOutcome__value_PR_ENDCX2SetupFailure, + X2UnsuccessfulOutcome__value_PR_ENDCConfigurationUpdateFailure, + X2UnsuccessfulOutcome__value_PR_ENDCCellActivationFailure, + X2UnsuccessfulOutcome__value_PR_ENDCX2RemovalFailure +} X2UnsuccessfulOutcome__value_PR; + +/* X2UnsuccessfulOutcome */ +typedef struct X2UnsuccessfulOutcome { + ProcedureCode_t procedureCode; + Criticality_t criticality; + struct X2UnsuccessfulOutcome__value { + X2UnsuccessfulOutcome__value_PR present; + union X2UnsuccessfulOutcome__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; +} X2UnsuccessfulOutcome_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_X2UnsuccessfulOutcome; +extern asn_SEQUENCE_specifics_t asn_SPC_X2UnsuccessfulOutcome_specs_1; +extern asn_TYPE_member_t asn_MBR_X2UnsuccessfulOutcome_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _X2UnsuccessfulOutcome_H_ */ +#include diff --git a/asn1c_defs/all-defs/asn_SEQUENCE_OF.c b/asn1c_defs/all-defs/asn_SEQUENCE_OF.c new file mode 100644 index 0000000..ec952fc --- /dev/null +++ b/asn1c_defs/all-defs/asn_SEQUENCE_OF.c @@ -0,0 +1,41 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +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/asn1c_defs/all-defs/asn_SEQUENCE_OF.h b/asn1c_defs/all-defs/asn_SEQUENCE_OF.h new file mode 100644 index 0000000..e35bc44 --- /dev/null +++ b/asn1c_defs/all-defs/asn_SEQUENCE_OF.h @@ -0,0 +1,52 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_SEQUENCE_OF_H +#define ASN_SEQUENCE_OF_H + +#include + +#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/asn1c_defs/all-defs/asn_SET_OF.c b/asn1c_defs/all-defs/asn_SET_OF.c new file mode 100644 index 0000000..944f2cb --- /dev/null +++ b/asn1c_defs/all-defs/asn_SET_OF.c @@ -0,0 +1,88 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * 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/asn1c_defs/all-defs/asn_SET_OF.h b/asn1c_defs/all-defs/asn_SET_OF.h new file mode 100644 index 0000000..882e1a4 --- /dev/null +++ b/asn1c_defs/all-defs/asn_SET_OF.h @@ -0,0 +1,72 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . 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/asn1c_defs/all-defs/asn_application.c b/asn1c_defs/all-defs/asn_application.c new file mode 100644 index 0000000..2bff460 --- /dev/null +++ b/asn1c_defs/all-defs/asn_application.c @@ -0,0 +1,481 @@ +/* + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +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/asn1c_defs/all-defs/asn_application.h b/asn1c_defs/all-defs/asn_application.h new file mode 100644 index 0000000..034f646 --- /dev/null +++ b/asn1c_defs/all-defs/asn_application.h @@ -0,0 +1,171 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . 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/asn1c_defs/all-defs/asn_bit_data.c b/asn1c_defs/all-defs/asn_bit_data.c new file mode 100644 index 0000000..fe4b89b --- /dev/null +++ b/asn1c_defs/all-defs/asn_bit_data.c @@ -0,0 +1,333 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * 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/asn1c_defs/all-defs/asn_bit_data.h b/asn1c_defs/all-defs/asn_bit_data.h new file mode 100644 index 0000000..59de7af --- /dev/null +++ b/asn1c_defs/all-defs/asn_bit_data.h @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_BIT_DATA +#define ASN_BIT_DATA + +#include /* 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/asn1c_defs/all-defs/asn_codecs.h b/asn1c_defs/all-defs/asn_codecs.h new file mode 100644 index 0000000..e75c270 --- /dev/null +++ b/asn1c_defs/all-defs/asn_codecs.h @@ -0,0 +1,108 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . 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/asn1c_defs/all-defs/asn_codecs_prim.c b/asn1c_defs/all-defs/asn_codecs_prim.c new file mode 100644 index 0000000..fc24247 --- /dev/null +++ b/asn1c_defs/all-defs/asn_codecs_prim.c @@ -0,0 +1,317 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * 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 (, , 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: + * "123 " + * ^- 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: + * "1want_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/asn1c_defs/all-defs/asn_codecs_prim.h b/asn1c_defs/all-defs/asn_codecs_prim.h new file mode 100644 index 0000000..fbc5576 --- /dev/null +++ b/asn1c_defs/all-defs/asn_codecs_prim.h @@ -0,0 +1,51 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_CODECS_PRIM_H +#define ASN_CODECS_PRIM_H + +#include + +#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/asn1c_defs/all-defs/asn_constant.h b/asn1c_defs/all-defs/asn_constant.h new file mode 100644 index 0000000..0729de8 --- /dev/null +++ b/asn1c_defs/all-defs/asn_constant.h @@ -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 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) +#define maxofInterfaceProtocolIE (15) +#define maxofActionParameters (255) + + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_CONSTANT_H */ diff --git a/asn1c_defs/all-defs/asn_internal.c b/asn1c_defs/all-defs/asn_internal.c new file mode 100644 index 0000000..1aff95f --- /dev/null +++ b/asn1c_defs/all-defs/asn_internal.c @@ -0,0 +1,48 @@ +#include + +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/asn1c_defs/all-defs/asn_internal.h b/asn1c_defs/all-defs/asn_internal.h new file mode 100644 index 0000000..c4105ad --- /dev/null +++ b/asn1c_defs/all-defs/asn_internal.h @@ -0,0 +1,159 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . 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 /* 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/asn1c_defs/all-defs/asn_ioc.h b/asn1c_defs/all-defs/asn_ioc.h new file mode 100644 index 0000000..7de210e --- /dev/null +++ b/asn1c_defs/all-defs/asn_ioc.h @@ -0,0 +1,51 @@ +/* + * Run-time support for Information Object Classes. + * Copyright (c) 2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN_IOC_H +#define ASN_IOC_H + +#include /* 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/asn1c_defs/all-defs/asn_random_fill.c b/asn1c_defs/all-defs/asn_random_fill.c new file mode 100644 index 0000000..819cf70 --- /dev/null +++ b/asn1c_defs/all-defs/asn_random_fill.c @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +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/asn1c_defs/all-defs/asn_random_fill.h b/asn1c_defs/all-defs/asn_random_fill.h new file mode 100644 index 0000000..47f9b8a --- /dev/null +++ b/asn1c_defs/all-defs/asn_random_fill.h @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2017 Lev Walkin . 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/asn1c_defs/all-defs/asn_system.h b/asn1c_defs/all-defs/asn_system.h new file mode 100644 index 0000000..fa8cf11 --- /dev/null +++ b/asn1c_defs/all-defs/asn_system.h @@ -0,0 +1,150 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . 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 /* For snprintf(3) */ +#include /* For *alloc(3) */ +#include /* For memcpy(3) */ +#include /* For size_t */ +#include /* For LONG_MAX */ +#include /* For va_start */ +#include /* for offsetof and ptrdiff_t */ + +#ifdef _WIN32 + +#include +#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 +#endif /* _MSC_VER < 1600 */ +#endif /* ASSUMESTDTYPES */ +#define WIN32_LEAN_AND_MEAN +#include +#include +#define isnan _isnan +#define finite _finite +#define copysign _copysign +#define ilogb _logb +#else /* !_MSC_VER */ +#include +#endif /* _MSC_VER */ + +#else /* !_WIN32 */ + +#if defined(__vxworks) +#include +#else /* !defined(__vxworks) */ + +#include /* C99 specifies this file */ +#include /* 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 */ +#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/asn1c_defs/all-defs/ber_decoder.c b/asn1c_defs/all-defs/ber_decoder.c new file mode 100644 index 0000000..75d6016 --- /dev/null +++ b/asn1c_defs/all-defs/ber_decoder.c @@ -0,0 +1,283 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include + +#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 >> 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/asn1c_defs/all-defs/ber_decoder.h b/asn1c_defs/all-defs/ber_decoder.h new file mode 100644 index 0000000..1ac2a5e --- /dev/null +++ b/asn1c_defs/all-defs/ber_decoder.h @@ -0,0 +1,66 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _BER_DECODER_H_ +#define _BER_DECODER_H_ + +#include + +#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/asn1c_defs/all-defs/ber_tlv_length.c b/asn1c_defs/all-defs/ber_tlv_length.c new file mode 100644 index 0000000..0a0deec --- /dev/null +++ b/asn1c_defs/all-defs/ber_tlv_length.c @@ -0,0 +1,168 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +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/asn1c_defs/all-defs/ber_tlv_length.h b/asn1c_defs/all-defs/ber_tlv_length.h new file mode 100644 index 0000000..d1e4d48 --- /dev/null +++ b/asn1c_defs/all-defs/ber_tlv_length.h @@ -0,0 +1,50 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . 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/asn1c_defs/all-defs/ber_tlv_tag.c b/asn1c_defs/all-defs/ber_tlv_tag.c new file mode 100644 index 0000000..4a7d732 --- /dev/null +++ b/asn1c_defs/all-defs/ber_tlv_tag.c @@ -0,0 +1,144 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +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/asn1c_defs/all-defs/ber_tlv_tag.h b/asn1c_defs/all-defs/ber_tlv_tag.h new file mode 100644 index 0000000..ce227ad --- /dev/null +++ b/asn1c_defs/all-defs/ber_tlv_tag.h @@ -0,0 +1,60 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . 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/asn1c_defs/all-defs/constr_CHOICE.c b/asn1c_defs/all-defs/constr_CHOICE.c new file mode 100644 index 0000000..613e6ea --- /dev/null +++ b/asn1c_defs/all-defs/constr_CHOICE.c @@ -0,0 +1,1511 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * 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 's L, even if the buffer size allows + * reading more data. + * For example, consider the buffer containing the following TLVs: + * ... + * 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 + * tags. + */ + if(tcv & XCT_CLOSING) { + /* Found 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("", 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("", 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("", 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("", 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/asn1c_defs/all-defs/constr_CHOICE.h b/asn1c_defs/all-defs/constr_CHOICE.h new file mode 100644 index 0000000..a1999ed --- /dev/null +++ b/asn1c_defs/all-defs/constr_CHOICE.h @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _CONSTR_CHOICE_H_ +#define _CONSTR_CHOICE_H_ + +#include + +#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/asn1c_defs/all-defs/constr_SEQUENCE.c b/asn1c_defs/all-defs/constr_SEQUENCE.c new file mode 100644 index 0000000..43dcac7 --- /dev/null +++ b/asn1c_defs/all-defs/constr_SEQUENCE.c @@ -0,0 +1,2059 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +/* + * 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 's L, even if the buffer size allows + * reading more data. + * For example, consider the buffer containing the following TLVs: + * ... + * 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 = ( * 2 + ). + */ + 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 + * tags. + */ + if(tcv & XCT_CLOSING) { + /* Found 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("", 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("", 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 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/asn1c_defs/all-defs/constr_SEQUENCE.h b/asn1c_defs/all-defs/constr_SEQUENCE.h new file mode 100644 index 0000000..a22ed3a --- /dev/null +++ b/asn1c_defs/all-defs/constr_SEQUENCE.h @@ -0,0 +1,68 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _CONSTR_SEQUENCE_H_ +#define _CONSTR_SEQUENCE_H_ + +#include + +#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/asn1c_defs/all-defs/constr_SEQUENCE_OF.c b/asn1c_defs/all-defs/constr_SEQUENCE_OF.c new file mode 100644 index 0000000..10f18cf --- /dev/null +++ b/asn1c_defs/all-defs/constr_SEQUENCE_OF.c @@ -0,0 +1,358 @@ +/*- + * Copyright (c) 2003, 2004, 2006 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * 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("", 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/asn1c_defs/all-defs/constr_SEQUENCE_OF.h b/asn1c_defs/all-defs/constr_SEQUENCE_OF.h new file mode 100644 index 0000000..6857f0f --- /dev/null +++ b/asn1c_defs/all-defs/constr_SEQUENCE_OF.h @@ -0,0 +1,41 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _CONSTR_SEQUENCE_OF_H_ +#define _CONSTR_SEQUENCE_OF_H_ + +#include +#include /* 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/asn1c_defs/all-defs/constr_SET_OF.c b/asn1c_defs/all-defs/constr_SET_OF.c new file mode 100644 index 0000000..bf1dc27 --- /dev/null +++ b/asn1c_defs/all-defs/constr_SET_OF.c @@ -0,0 +1,1441 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * 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 's L, even if the buffer size allows + * reading more data. + * For example, consider the buffer containing the following TLVs: + * ... + * 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("", 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("", 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/asn1c_defs/all-defs/constr_SET_OF.h b/asn1c_defs/all-defs/constr_SET_OF.h new file mode 100644 index 0000000..7681062 --- /dev/null +++ b/asn1c_defs/all-defs/constr_SET_OF.h @@ -0,0 +1,49 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef CONSTR_SET_OF_H +#define CONSTR_SET_OF_H + +#include + +#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/asn1c_defs/all-defs/constr_TYPE.c b/asn1c_defs/all-defs/constr_TYPE.c new file mode 100644 index 0000000..aefaefd --- /dev/null +++ b/asn1c_defs/all-defs/constr_TYPE.c @@ -0,0 +1,80 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * 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/asn1c_defs/all-defs/constr_TYPE.h b/asn1c_defs/all-defs/constr_TYPE.h new file mode 100644 index 0000000..d80dea5 --- /dev/null +++ b/asn1c_defs/all-defs/constr_TYPE.h @@ -0,0 +1,262 @@ +/* + * Copyright (c) 2003-2017 Lev Walkin . 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 +#include + +#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 /* Basic Encoding Rules decoder */ +#include /* Distinguished Encoding Rules encoder */ +#include /* Decoder of XER (XML, text) */ +#include /* Encoder into XER (XML, text) */ +#include /* Packet Encoding Rules decoder */ +#include /* Packet Encoding Rules encoder */ +#include /* Subtype constraints support */ +#include /* 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 /* Octet Encoding Rules encoder */ +#include /* 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; /* */ +} 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 */ + int (*default_value_set)(void **sptr); /* Set DEFAULT */ + 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/asn1c_defs/all-defs/constraints.c b/asn1c_defs/all-defs/constraints.c new file mode 100644 index 0000000..df3c6c1 --- /dev/null +++ b/asn1c_defs/all-defs/constraints.c @@ -0,0 +1,93 @@ +#include +#include + +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("") - 1; + maxlen--; + arg->errlen = vlen < maxlen ? vlen : maxlen; + memcpy(arg->errbuf, "", 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/asn1c_defs/all-defs/constraints.h b/asn1c_defs/all-defs/constraints.h new file mode 100644 index 0000000..0bd86a9 --- /dev/null +++ b/asn1c_defs/all-defs/constraints.h @@ -0,0 +1,62 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef ASN1_CONSTRAINTS_VALIDATOR_H +#define ASN1_CONSTRAINTS_VALIDATOR_H + +#include /* 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/asn1c_defs/all-defs/converter-example.mk b/asn1c_defs/all-defs/converter-example.mk new file mode 100644 index 0000000..34cccaa --- /dev/null +++ b/asn1c_defs/all-defs/converter-example.mk @@ -0,0 +1,7 @@ +include Makefile.am.libasncodec + +LIBS += -lm +CFLAGS += $(ASN_MODULE_CFLAGS) -DASN_PDU_COLLECTION -I. +ASN_LIBRARY ?= libasncodec.a +ASN_PROGRAM ?= converter-example +ASN_PROGRAM_SRCS ?= >>>ABORTED<<< \ No newline at end of file diff --git a/asn1c_defs/all-defs/der_encoder.c b/asn1c_defs/all-defs/der_encoder.c new file mode 100644 index 0000000..2c6a6f7 --- /dev/null +++ b/asn1c_defs/all-defs/der_encoder.c @@ -0,0 +1,194 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +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/asn1c_defs/all-defs/der_encoder.h b/asn1c_defs/all-defs/der_encoder.h new file mode 100644 index 0000000..e93944e --- /dev/null +++ b/asn1c_defs/all-defs/der_encoder.h @@ -0,0 +1,68 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _DER_ENCODER_H_ +#define _DER_ENCODER_H_ + +#include + +#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/asn1c_defs/all-defs/per_decoder.c b/asn1c_defs/all-defs/per_decoder.c new file mode 100644 index 0000000..8a3e39d --- /dev/null +++ b/asn1c_defs/all-defs/per_decoder.c @@ -0,0 +1,185 @@ +#include +#include +#include + +/* + * 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 */ + 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 */ + 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/asn1c_defs/all-defs/per_decoder.h b/asn1c_defs/all-defs/per_decoder.h new file mode 100644 index 0000000..eea474a --- /dev/null +++ b/asn1c_defs/all-defs/per_decoder.h @@ -0,0 +1,82 @@ +/*- + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _PER_DECODER_H_ +#define _PER_DECODER_H_ + +#include +#include + +#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/asn1c_defs/all-defs/per_encoder.c b/asn1c_defs/all-defs/per_encoder.c new file mode 100644 index 0000000..a35e1f0 --- /dev/null +++ b/asn1c_defs/all-defs/per_encoder.c @@ -0,0 +1,265 @@ +#include +#include +#include + +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/asn1c_defs/all-defs/per_encoder.h b/asn1c_defs/all-defs/per_encoder.h new file mode 100644 index 0000000..b615ef0 --- /dev/null +++ b/asn1c_defs/all-defs/per_encoder.h @@ -0,0 +1,93 @@ +/*- + * Copyright (c) 2006-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _PER_ENCODER_H_ +#define _PER_ENCODER_H_ + +#include +#include + +#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/asn1c_defs/all-defs/per_opentype.c b/asn1c_defs/all-defs/per_opentype.c new file mode 100644 index 0000000..28f3cb6 --- /dev/null +++ b/asn1c_defs/all-defs/per_opentype.c @@ -0,0 +1,533 @@ +/* + * Copyright (c) 2007 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include +#include + +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 = ""; + 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 = ""; + 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/asn1c_defs/all-defs/per_opentype.h b/asn1c_defs/all-defs/per_opentype.h new file mode 100644 index 0000000..1493b2d --- /dev/null +++ b/asn1c_defs/all-defs/per_opentype.h @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2007-2017 Lev Walkin . 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/asn1c_defs/all-defs/per_support.c b/asn1c_defs/all-defs/per_support.c new file mode 100644 index 0000000..2285677 --- /dev/null +++ b/asn1c_defs/all-defs/per_support.c @@ -0,0 +1,489 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * 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/asn1c_defs/all-defs/per_support.h b/asn1c_defs/all-defs/per_support.h new file mode 100644 index 0000000..23079c9 --- /dev/null +++ b/asn1c_defs/all-defs/per_support.h @@ -0,0 +1,127 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _PER_SUPPORT_H_ +#define _PER_SUPPORT_H_ + +#include /* Platform-specific types */ +#include + +#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/asn1c_defs/all-defs/xer_decoder.c b/asn1c_defs/all-defs/xer_decoder.c new file mode 100644 index 0000000..5b87703 --- /dev/null +++ b/asn1c_defs/all-defs/xer_decoder.c @@ -0,0 +1,369 @@ +/* + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include /* 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 "" */ + ct = XCT_CLOSING; + if(size > 0 && buf[size-1] == CSLASH) + return XCT_BROKEN; /* */ + } 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: + /* "": 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/asn1c_defs/all-defs/xer_decoder.h b/asn1c_defs/all-defs/xer_decoder.h new file mode 100644 index 0000000..b951c41 --- /dev/null +++ b/asn1c_defs/all-defs/xer_decoder.h @@ -0,0 +1,106 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _XER_DECODER_H_ +#define _XER_DECODER_H_ + +#include + +#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 tag */ + XCT_CLOSING = 2, /* This is the tag */ + XCT_BOTH = 3, /* This is the tag */ + XCT__UNK__MASK = 4, /* Mask of everything unexpected */ + XCT_UNKNOWN_OP = 5, /* Unexpected tag */ + XCT_UNKNOWN_CL = 6, /* Unexpected tag */ + XCT_UNKNOWN_BO = 7 /* Unexpected 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/asn1c_defs/all-defs/xer_encoder.c b/asn1c_defs/all-defs/xer_encoder.c new file mode 100644 index 0000000..4177ede --- /dev/null +++ b/asn1c_defs/all-defs/xer_encoder.c @@ -0,0 +1,237 @@ +/*- + * Copyright (c) 2003, 2004 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * 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("\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/asn1c_defs/all-defs/xer_encoder.h b/asn1c_defs/all-defs/xer_encoder.h new file mode 100644 index 0000000..9d75922 --- /dev/null +++ b/asn1c_defs/all-defs/xer_encoder.h @@ -0,0 +1,83 @@ +/*- + * Copyright (c) 2004-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _XER_ENCODER_H_ +#define _XER_ENCODER_H_ + +#include + +#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/asn1c_defs/all-defs/xer_support.c b/asn1c_defs/all-defs/xer_support.c new file mode 100644 index 0000000..36b4bfb --- /dev/null +++ b/asn1c_defs/all-defs/xer_support.c @@ -0,0 +1,227 @@ +/* + * Copyright (c) 2003, 2004 X/IO Labs, xiolabs.com. + * Copyright (c) 2003, 2004, 2005 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* 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, /* ""[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/asn1c_defs/all-defs/xer_support.h b/asn1c_defs/all-defs/xer_support.h new file mode 100644 index 0000000..c3a36e7 --- /dev/null +++ b/asn1c_defs/all-defs/xer_support.h @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2003, 2004 X/IO Labs, xiolabs.com. + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _XER_SUPPORT_H_ +#define _XER_SUPPORT_H_ + +#include /* 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 "". */ + /* + * 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/container-tag.yaml b/container-tag.yaml new file mode 100644 index 0000000..6baeaa9 --- /dev/null +++ b/container-tag.yaml @@ -0,0 +1,2 @@ +--- +tag: '0.0.1' diff --git a/init/admin_xapp_config.json b/init/admin_xapp_config.json new file mode 100644 index 0000000..ca22816 --- /dev/null +++ b/init/admin_xapp_config.json @@ -0,0 +1,26 @@ +{ + "service_ports":{ + "xapp_port":4560, + "rmr_port":4561 + }, + + "rmr":{ + "protPort": "tcp:4560", + "maxSize": 2072, + "numWorkers": 1, + "txMessages": ["RIC_SUB_REQ", "RIC_SUB_DEL_REQ"], + "rxMessages": ["RIC_SUB_RESP", "RIC_SUB_FAILURE", "RIC_SUB_DEL_RESP", "RIC_SUB_DEL_FAILURE", "RIC_INDICATION"], + "file_path":"/tmp/routeinfo/routes.txt", + "contents": "newrt|start\nrte|0|localhost:4560\nrte|2|service-ricplt-e2term-rmr:38000\nrte|10002|localhost:4560\nrte|10005|localhost:4560\nrte|10003|service-ricplt-e2term-rmr:38000\nrte|12010|service-ricplt-e2term-rmr:38000\nrte|12020|service-ricplt-e2term-rmr:38000\nrte|12011|localhost:4560\nrte|12012|localhost:4560\nrte|12021|localhost:4560\nrte|12022|localhost:4560\nrte|20000|localhost:4560\nrte|20001|localhost:4566\nnewrt|end " + }, + + "envs":{ + "gNodeB":"NYC123", + "THREADS":"1", + "A1_SCHEMA_FILE":"/etc/xapp/adm-ctrl-xapp-schema.json", + "VES_SCHEMA_FILE":"/etc/xapp/ves_schema.json", + "SAMPLE_FILE":"/etc/xapp/samples.json", + "VES_COLLECTOR_URL":"127.0.0.1:6350", + "VES_MEASUREMENT_INTERVAL":"10" + } +} diff --git a/init/admin_xapp_config_schema.json b/init/admin_xapp_config_schema.json new file mode 100644 index 0000000..3d8f476 --- /dev/null +++ b/init/admin_xapp_config_schema.json @@ -0,0 +1,229 @@ +{ + "definitions": {}, + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://example.com/root.json", + "type": "object", + "title": "The Root Schema", + "required": [ + "service_ports", + "rmr", + "envs" + ], + "properties": { + "service_ports": { + "$id": "#/properties/service_ports", + "type": "object", + "title": "The Service_ports Schema", + "required": [ + "xapp_port", + "rmr_port" + ], + "properties": { + "xapp_port": { + "$id": "#/properties/service_ports/properties/xapp_port", + "type": "integer", + "title": "The Xapp_port Schema", + "default": 0, + "examples": [ + 4560 + ] + }, + "rmr_port": { + "$id": "#/properties/service_ports/properties/rmr_port", + "type": "integer", + "title": "The Rmr_port Schema", + "default": 0, + "examples": [ + 4561 + ] + } + } + }, + "rmr": { + "$id": "#/properties/rmr", + "type": "object", + "title": "The Rmr Schema", + "required": [ + "protPort", + "maxSize", + "numWorkers", + "txMessages", + "rxMessages", + "file_path", + "contents" + ], + "properties": { + "protPort": { + "$id": "#/properties/rmr/properties/protPort", + "type": "string", + "title": "The Protport Schema", + "default": "", + "examples": [ + "tcp:4560" + ], + "pattern": "^(.*)$" + }, + "maxSize": { + "$id": "#/properties/rmr/properties/maxSize", + "type": "integer", + "title": "The Maxsize Schema", + "default": 0, + "examples": [ + 2072 + ] + }, + "numWorkers": { + "$id": "#/properties/rmr/properties/numWorkers", + "type": "integer", + "title": "The Numworkers Schema", + "default": 0, + "examples": [ + 1 + ] + }, + "txMessages": { + "$id": "#/properties/rmr/properties/txMessages", + "type": "array", + "title": "The Txmessages Schema", + "items": { + "$id": "#/properties/rmr/properties/txMessages/items", + "type": "string", + "title": "The Items Schema", + "default": "", + "examples": [ + "RIC_SUB_REQ", + "RIC_SUB_DEL_REQ" + ], + "pattern": "^(.*)$" + } + }, + "rxMessages": { + "$id": "#/properties/rmr/properties/rxMessages", + "type": "array", + "title": "The Rxmessages Schema", + "items": { + "$id": "#/properties/rmr/properties/rxMessages/items", + "type": "string", + "title": "The Items Schema", + "default": "", + "examples": [ + "RIC_SUB_RESP", + "RIC_SUB_FAILURE", + "RIC_SUB_DEL_RESP", + "RIC_SUB_DEL_FAILURE", + "RIC_INDICATION" + ], + "pattern": "^(.*)$" + } + }, + "file_path": { + "$id": "#/properties/rmr/properties/file_path", + "type": "string", + "title": "The File_path Schema", + "default": "", + "examples": [ + "/tmp/routeinfo/routes.txt" + ], + "pattern": "^(.*)$" + }, + "contents": { + "$id": "#/properties/rmr/properties/contents", + "type": "string", + "title": "The Contents Schema", + "default": "", + "examples": [ + "newrt|start\nrte|0|localhost:4560\nrte|2|localhost:4591\nrte|10002|localhost:4560\nrte|10005|localhost:4560\nrte|10003|localhost:4591\nrte|12010|localhost:4591\nrte|12020|localhost:4591\nrte|12011|localhost:4560\nrte|12012|localhost:4560\nrte|12021|localhost:4560\nrte|12022|localhost:4560\nrte|20000|localhost:4560\nrte|20001|localhost:4566\nnewrt|end " + ], + "pattern": "^(.*)$" + } + } + }, + "envs": { + "$id": "#/properties/envs", + "type": "object", + "title": "The Envs Schema", + "required": [ + "gNodeB", + "THREADS", + "A1_SCHEMA_FILE", + "VES_SCHEMA_FILE", + "SAMPLE_FILE", + "VES_COLLECTOR_URL", + "VES_MEAUSUREMENT_INTERVAL" + ], + "properties": { + "gNodeB": { + "$id": "#/properties/envs/properties/gNodeB", + "type": "string", + "title": "The Gnodeb Schema", + "default": "", + "examples": [ + "NYC123" + ], + "pattern": "^(.*)$" + }, + "THREADS": { + "$id": "#/properties/envs/properties/THREADS", + "type": "string", + "title": "The Threads Schema", + "default": "", + "examples": [ + "1" + ], + "pattern": "^(.*)$" + }, + "A1_SCHEMA_FILE": { + "$id": "#/properties/envs/properties/A1_SCHEMA_FILE", + "type": "string", + "title": "The A1_schema_file Schema", + "default": "", + "examples": [ + "/etc/xapp/adm-ctrl-xapp-schema.json" + ], + "pattern": "^(.*)$" + }, + "VES_SCHEMA_FILE": { + "$id": "#/properties/envs/properties/VES_SCHEMA_FILE", + "type": "string", + "title": "The Ves_schema_file Schema", + "default": "", + "examples": [ + "/etc/xapp/ves_schema.json" + ], + "pattern": "^(.*)$" + }, + "SAMPLE_FILE": { + "$id": "#/properties/envs/properties/SAMPLE_FILE", + "type": "string", + "title": "The Sample_file Schema", + "default": "", + "examples": [ + "/etc/xapp/samples.json" + ], + "pattern": "^(.*)$" + }, + "VES_COLLECTOR_URL": { + "$id": "#/properties/envs/properties/VES_COLLECTOR_URL", + "type": "string", + "title": "The Ves_collector_url Schema", + "default": "", + "examples": [ + "127.0.0.1:6350" + ], + "pattern": "^(.*)$" + }, + "VES_MEAUSUREMENT_INTERVAL": { + "$id": "#/properties/envs/properties/VES_MEAUSUREMENT_INTERVAL", + "type": "string", + "title": "The Ves_meausurement_interval Schema", + "default": "", + "examples": [ + "10" + ], + "pattern": "^(.*)$" + } + } + } + } +} + diff --git a/init/config-file.json b/init/config-file.json new file mode 100644 index 0000000..3cc7966 --- /dev/null +++ b/init/config-file.json @@ -0,0 +1,29 @@ +{ + "service_ports":{ + "xapp_port":4560, + "rmr_port":4561 + }, + + "rmr":{ + "protPort": "tcp:4560", + "maxSize": 2072, + "numWorkers": 1, + "txMessages": ["RIC_SUB_REQ", "RIC_SUB_DEL_REQ", "RIC_CONTROL_REQ"], + "rxMessages": ["RIC_SUB_RESP", "RIC_SUB_FAILURE", "RIC_SUB_DEL_RESP", "RIC_SUB_DEL_FAILURE", "RIC_INDICATION", "RIC_CONTROL_ACK", "RIC_CONTROL_FAILURE"], + "file_path":"/tmp/routeinfo/routes.txt", + "contents": "newrt|start\nrte|0|localhost:4560\nrte|2|localhost:38000\nrte|10002|localhost:4560\nrte|10005|localhost:4560\nrte|10003|localhost:38000\nrte|12010|localhost:38000\nrte|12020|localhost:38000\nrte|12011|localhost:4560\nrte|12012|localhost:4560\nrte|12021|localhost:4560\nrte|12022|localhost:4560\nrte|20000|localhost:4560\nrte|12040|localhost:38000\nrte|20001|localhost:4566\nnewrt|end" + }, + + "envs":{ + "GNODEB":"NYC123", + "THREADS":"1", + "A1_SCHEMA_FILE":"/etc/xapp/adm-ctrl-xapp-schema.json", + "VES_SCHEMA_FILE":"/etc/xapp/ves_schema.json", + "SAMPLE_FILE":"/etc/xapp/samples.json", + "VES_COLLECTOR_URL":"127.0.0.1:6350", + "VES_MEASUREMENT_INTERVAL":"30", + "LOG_LEVEL":"MDCLOG_INFO", + "OPERARING_MODE":"CONTROL", + "TEST_MODE":"1" + } +} diff --git a/init/init_script.py b/init/init_script.py new file mode 100644 index 0000000..3073b17 --- /dev/null +++ b/init/init_script.py @@ -0,0 +1,155 @@ +#================================================================================== + +# Copyright (c) 2018-2019 AT&T Intellectual Property. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#================================================================================== + +# +# Author : Ashwin Sridharan +# Date : Feb 2019 +# + + +# This initialization script reads in a json from the specified config map path +# to set up the initializations (route config map, variables etc) for the main +# xapp process + +import json; +import sys; +import os; + + +def parseConfigJson(config): + for key in config: + print("Processing ", key); + if key in ParseSection: + result = ParseSection[key](config); + if result == False: + return False; + + +def getRMRTable(config): + myKey= "rmr"; + if myKey not in config: + print(("Error ! No information found for {0} in config\n".format(myKey))); + return False; + + # Get the rmr routing table + if "file_path" not in config[myKey]: + print(("Warning ! No file path specified to store seed routing table. Choosing default = {1}\n".format(default_routing_file))); + route_file = default_routing_file; + else: + route_file = config[myKey]["file_path"]; + + # Get the rmr routing table contents + if "contents" not in config[myKey]: + print("No contents for routing table found in config"); + return False; + else: + route_contents = config[myKey]["contents"]; + + # Get directory : if not exists create it + directory = os.path.dirname(route_file); + if not os.path.exists(directory): + # create directory + try: + os.mkdir(directory); + except OSError as oe: + print(("Error making directory {0}. Reason = {1}\n".format(directory, oe))); + return False; + + # Write contents to file + try: + with open(route_file, "w") as f : + f.write(config[myKey]["contents"]); + f.close(); + except Exception as e: + print(("Error writing contents to file {0}. Reason = {1}\n".format(route_file, e))); + return False; + + # Set the environment variable + os.environ["RMR_SEED_RT"] = route_file; + +def getPort(config): + myKey = "service_ports"; + if myKey not in config: + print(("Error ! No information found for {0} in config\n".format(myKey))); + return False; + port_config = config[myKey]; + if "xapp_port" in port_config: + try: + xapp_port = int(port_config["xapp_port"]); + if xapp_port < 1024: + raise Exception("Port must be > 1024"); + except Exception as e: + print(("Error processing xapp port {0}. Reason = {1}\n".format(port_config["xapp_port"], e))); + return False; + else: + xapp_port = 0; + + +def getEnvs(config): + myKey = "envs"; + if myKey not in config: + print(("Error ! No information found for {0} in config\n".format(myKey))); + return False; + + env_config = config[myKey]; + + for env_key in env_config: + os.environ[env_key] = env_config[env_key]; + print("Set environment variable {0} = {1}\n".format(env_key, os.environ[env_key])); + + return True; + +ParseSection = {}; +xapp_port = 0; +ParseSection["rmr"] = getRMRTable; +ParseSection["envs"] = getEnvs; + +default_routing_file = "/tmp/routeinfo/routes.txt"; + + +#================================================================ +if __name__ == "__main__": + + import subprocess; + cmd = ["/usr/local/bin/adm-ctrl-xapp"]; + if xapp_port > 0: + cmd.append("-p"); + cmd.append(xapp_port); + + if len(sys.argv) > 1: + config_file = sys.argv[1]; + else: + print("Error! No configuration file specified\n"); + sys.exit(1); + + + with open(config_file, 'r') as f: + try: + config = json.load(f); + except Exception as e: + print(("Error loading json file from {0}. Reason = {1}\n".format(config_file, e))); + sys.exit(1); + + result = parseConfigJson(config); + + if result == False: + print("Error parsing json. Not executing xAPP"); + sys.exit(1); + + else: + print("Executing xAPP ...."); + p = subprocess.check_call(cmd); diff --git a/init/subscriptions.json b/init/subscriptions.json new file mode 100644 index 0000000..0924b06 --- /dev/null +++ b/init/subscriptions.json @@ -0,0 +1,32 @@ +{ + "subscribe_sgnb_request":{ + "ranFunctionId":0, + "ricAction-ToBeSetup-List":{ + "list": [ + { + "ricActionType":0, + "ricActionID":1 + } + ] + }, + "ricEventTriggerDefinition":{ + "interfaceMessageType":{ + "procedureCode":27, + "messageType":0 + }, + + "interfaceDirection":0, + "interfaceID":{ + "globalGnbID":"NYC123", + "plmnIdentity":"123" + }, + "interfaceProtoIE-List":[ + { + "id": 10, + "test":0, + "value":"34,35" + } + ] + } + } +} diff --git a/schemas/README.md b/schemas/README.md new file mode 100644 index 0000000..61fbe84 --- /dev/null +++ b/schemas/README.md @@ -0,0 +1,3 @@ +The xAPP descriptor JSON schema : adm-ctrl-xapp-schema.json +Sample payloads are in samples.json. The xAPP manipulates values in json +VES schema : ves_schema.json diff --git a/schemas/adm-ctrl-xapp-schema.json b/schemas/adm-ctrl-xapp-schema.json new file mode 100644 index 0000000..451d1f2 --- /dev/null +++ b/schemas/adm-ctrl-xapp-schema.json @@ -0,0 +1,98 @@ +{ + "name":"admission_control_xapp", + "owner":"att:app_paas", + "description":"Admission Control logic for dual connection", + "controls":[ + { + "name":"admission_control_policy", + "description":"various parameters to control admission of dual connection", + "message_receives_rmr_type":"DC_ADMISSION_INTERVAL_CONTROL", + "message_receives_payload_schema":{ + "$schema":"http://json-schema.org/draft-07/schema#", + "type":"object", + "properties":{ + "enforce":{ + "type":"boolean", + "default":true + }, + "window_length":{ + "type":"integer", + "default":1, + "minimum":1, + "maximum":60, + "description":"Sliding window length (in minutes)" + }, + "blocking_rate":{ + "type":"number", + "default":10, + "minimum":1, + "maximum":100, + "description":"% Connections to block" + }, + "trigger_threshold":{ + "type":"integer", + "default":10, + "minimum":1, + "description":"Minimum number of events in window to trigger blocking" + } + }, + + "required":["enforce", "blocking_rate", "trigger_threshold", "window_length"], + "additionalProperties":false + }, + "message_sends_rmr_type":"DC_ADMISSION_INTERVAL_CONTROL_ACK", + "message_sends_payload_schema":{ + "$schema":"http://json-schema.org/draft-07/schema#", + "type":"object", + "properties":{ + "status":{ + "type":"string", + "enum":[ + "SUCCESS", + "FAIL" + ] + }, + "message":{ + "type":"string" + } + }, + "required":["status"], + "additionalProperties":false + } + } + ], + "configuration":[ + { + "name":"rnib-endpoint", + "type":"string", + "description":"rnib namespace", + "default_value":"127.0.0.1:6379" + }, + { + "name":"spid", + "type":"NUMBER", + "description":"spid values for admitting dual connection", + "default_value":"34,35" + } + ], + "metrics":[ + { + "name":"num_accepted_dc_reqs", + "type":"COUNTER", + "unit":"", + "description":"Number of accepted dc requests since the start of the xapp" + }, + { + "name":"num_rejected_dc_reqs", + "type":"COUNTER", + "unit":"", + "description":"Number of rejected dc requests since the start of the xapp" + }, + { + "name":"num_dc_reqs_per_min", + "type":"GUAGE", + "description":"Number of dc requests received by this xAPP per min", + "unit":"Number per min" + } + ] +} diff --git a/schemas/samples.json b/schemas/samples.json new file mode 100644 index 0000000..d9ba40a --- /dev/null +++ b/schemas/samples.json @@ -0,0 +1,40 @@ +{ + "message_receives_example": { + "enforce":true, + "window_length":10, + "blocking_rate":20, + "trigger_threshold":10 + }, + + "message_sends_example": { + "status":"SUCCESS", + "message":"Config applied" + }, + + "metrics": { + "event": { + "commonEventHeader": { + "startEpochMicrosec": 1542231546086613, + "eventId": "sGNB Requests", + "eventType": "sGNB Request Rate", + "priority": "Normal", + "version": "4.0.1", + "reportingEntityName": "AC xAPP", + "sequence": 0, + "domain": "measurement", + "lastEpochMicrosec": 1542231556086613, + "eventName": "Measurement_vGMUX", + "sourceName": "adm-ctrl-xapp", + "vesEventListenerVersion": "7.0.1" + }, + "measurementFields": { + "additionalFields":{ + "SgNB Request Rate":"100", + "SgNB Accept Rate":"10" + }, + "measurementInterval":60, + "measurementFieldsVersion":"4.0" + } + } + } +} diff --git a/schemas/ves_schema.json b/schemas/ves_schema.json new file mode 100644 index 0000000..9cfefbe --- /dev/null +++ b/schemas/ves_schema.json @@ -0,0 +1,2744 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "VES Event Listener Common Event Format", + "type": "object", + "properties": { + "event": { + "$ref": "#/definitions/event" + }, + "eventList": { + "$ref": "#/definitions/eventList" + } + }, + "definitions": { + "schemaHeaderBlock": { + "description": "schema date, version, author and associated API", + "type": "object", + "properties": { + "associatedApi": { + "description": "VES Event Listener", + "type": "string" + }, + "lastUpdatedBy": { + "description": "re2947", + "type": "string" + }, + "schemaDate": { + "description": "July 31, 2018", + "type": "string" + }, + "schemaVersion": { + "description": "30.0.1", + "type": "number" + } + } + }, + "schemaLicenseAndCopyrightNotice": { + "description": "Copyright (c) 2018, AT&T Intellectual Property. All rights reserved", + "type": "object", + "properties": { + "apacheLicense2.0": { + "description": "Licensed under the Apache License, Version 2.0 (the 'License'); you may not use this file except in compliance with the License. You may obtain a copy of the License at:", + "type": "string" + }, + "licenseUrl": { + "description": "http://www.apache.org/licenses/LICENSE-2.0", + "type": "string" + }, + "asIsClause": { + "description": "Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", + "type": "string" + }, + "permissionsAndLimitations": { + "description": "See the License for the specific language governing permissions and limitations under the License.", + "type": "string" + } + } + }, + "arrayOfJsonObject": { + "description": "array of json objects described by name, schema and other meta-information", + "type": "array", + "items": { + "$ref": "#/definitions/jsonObject" + } + }, + "arrayOfNamedHashMap": { + "description": "array of named hashMaps", + "type": "array", + "items": { + "$ref": "#/definitions/namedHashMap" + } + }, + "codecsInUse": { + "description": "number of times an identified codec was used over the measurementInterval", + "type": "object", + "properties": { + "codecIdentifier": { + "type": "string" + }, + "numberInUse": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "codecIdentifier", + "numberInUse" + ] + }, + "commonEventHeader": { + "description": "fields common to all events", + "type": "object", + "properties": { + "domain": { + "description": "the eventing domain associated with the event", + "type": "string", + "enum": [ + "fault", + "heartbeat", + "measurement", + "mobileFlow", + "notification", + "other", + "pnfRegistration", + "sipSignaling", + "stateChange", + "syslog", + "thresholdCrossingAlert", + "voiceQuality" + ] + }, + "eventId": { + "description": "event key that is unique to the event source", + "type": "string" + }, + "eventName": { + "description": "unique event name", + "type": "string" + }, + "eventType": { + "description": "for example - applicationNf, guestOS, hostOS, platform", + "type": "string" + }, + "internalHeaderFields": { + "$ref": "#/definitions/internalHeaderFields" + }, + "lastEpochMicrosec": { + "description": "the latest unix time aka epoch time associated with the event from any component--as microseconds elapsed since 1 Jan 1970 not including leap seconds", + "type": "number" + }, + "nfcNamingCode": { + "description": "3 character network function component type, aligned with vfc naming standards", + "type": "string" + }, + "nfNamingCode": { + "description": "4 character network function type, aligned with nf naming standards", + "type": "string" + }, + "nfVendorName": { + "description": "network function vendor name", + "type": "string" + }, + "priority": { + "description": "processing priority", + "type": "string", + "enum": [ + "High", + "Medium", + "Normal", + "Low" + ] + }, + "reportingEntityId": { + "description": "UUID identifying the entity reporting the event, for example an OAM VM; must be populated by the ATT enrichment process", + "type": "string" + }, + "reportingEntityName": { + "description": "name of the entity reporting the event, for example, an EMS name; may be the same as sourceName", + "type": "string" + }, + "sequence": { + "description": "ordering of events communicated by an event source instance or 0 if not needed", + "type": "integer" + }, + "sourceId": { + "description": "UUID identifying the entity experiencing the event issue; must be populated by the ATT enrichment process", + "type": "string" + }, + "sourceName": { + "description": "name of the entity experiencing the event issue", + "type": "string" + }, + "startEpochMicrosec": { + "description": "the earliest unix time aka epoch time associated with the event from any component--as microseconds elapsed since 1 Jan 1970 not including leap seconds", + "type": "number" + }, + "timeZoneOffset": { + "description": "UTC offset for the local time zone of the device as UTC+/-hh.mm", + "type": "string" + }, + "version": { + "description": "version of the event header", + "type": "string", + "enum": [ + "4.0.1" + ] + }, + "vesEventListenerVersion": { + "description": "version of the VES Event Listener API", + "type": "string", + "enum": [ + "7.0.1" + ] + } + }, + "additionalProperties": false, + "required": [ + "domain", + "eventId", + "eventName", + "lastEpochMicrosec", + "priority", + "reportingEntityName", + "sequence", + "sourceName", + "startEpochMicrosec", + "version", + "vesEventListenerVersion" + ] + }, + "counter": { + "description": "performance counter", + "type": "object", + "properties": { + "criticality": { + "type": "string", + "enum": [ + "CRIT", + "MAJ" + ] + }, + "hashMap": { + "$ref": "#/definitions/hashMap" + }, + "thresholdCrossed": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "criticality", + "hashMap", + "thresholdCrossed" + ] + }, + "cpuUsage": { + "description": "usage of an identified CPU", + "type": "object", + "properties": { + "cpuCapacityContention": { + "description": "the amount of time the CPU cannot run due to contention, in milliseconds over the measurementInterval", + "type": "number" + }, + "cpuDemandAvg": { + "description": "the total CPU time that the NF/NFC/VM could use if there was no contention, in milliseconds over the measurementInterval", + "type": "number" + }, + "cpuDemandMhz": { + "description": "CPU demand in megahertz", + "type": "number" + }, + "cpuDemandPct": { + "description": "CPU demand as a percentage of the provisioned capacity", + "type": "number" + }, + "cpuIdentifier": { + "description": "cpu identifer", + "type": "string" + }, + "cpuIdle": { + "description": "percentage of CPU time spent in the idle task", + "type": "number" + }, + "cpuLatencyAvg": { + "description": "percentage of time the VM is unable to run because it is contending for access to the physical CPUs", + "type": "number" + }, + "cpuOverheadAvg": { + "description": "the overhead demand above available allocations and reservations, in milliseconds over the measurementInterval", + "type": "number" + }, + "cpuSwapWaitTime": { + "description": "swap wait time. in milliseconds over the measurementInterval", + "type": "number" + }, + "cpuUsageInterrupt": { + "description": "percentage of time spent servicing interrupts", + "type": "number" + }, + "cpuUsageNice": { + "description": "percentage of time spent running user space processes that have been niced", + "type": "number" + }, + "cpuUsageSoftIrq": { + "description": "percentage of time spent handling soft irq interrupts", + "type": "number" + }, + "cpuUsageSteal": { + "description": "percentage of time spent in involuntary wait which is neither user, system or idle time and is effectively time that went missing", + "type": "number" + }, + "cpuUsageSystem": { + "description": "percentage of time spent on system tasks running the kernel", + "type": "number" + }, + "cpuUsageUser": { + "description": "percentage of time spent running un-niced user space processes", + "type": "number" + }, + "cpuWait": { + "description": "percentage of CPU time spent waiting for I/O operations to complete", + "type": "number" + }, + "percentUsage": { + "description": "aggregate cpu usage of the virtual machine on which the xNFC reporting the event is running", + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "cpuIdentifier", + "percentUsage" + ] + }, + "diskUsage": { + "description": "usage of an identified disk", + "type": "object", + "properties": { + "diskBusResets": { + "description": "number of bus resets over the measurementInterval", + "type": "number" + }, + "diskCommandsAborted": { + "description": "number of disk commands aborted over the measurementInterval", + "type": "number" + }, + "diskCommandsAvg": { + "description": "average number of commands per second over the measurementInterval", + "type": "number" + }, + "diskFlushRequests": { + "description": "total flush requests of the disk cache over the measurementInterval", + "type": "number" + }, + "diskFlushTime": { + "description": "milliseconds spent on disk cache flushing over the measurementInterval", + "type": "number" + }, + "diskIdentifier": { + "description": "disk identifier", + "type": "string" + }, + "diskIoTimeAvg": { + "description": "milliseconds spent doing input/output operations over 1 sec; treat this metric as a device load percentage where 1000ms matches 100% load; provide the average over the measurement interval", + "type": "number" + }, + "diskIoTimeLast": { + "description": "milliseconds spent doing input/output operations over 1 sec; treat this metric as a device load percentage where 1000ms matches 100% load; provide the last value measurement within the measurement interval", + "type": "number" + }, + "diskIoTimeMax": { + "description": "milliseconds spent doing input/output operations over 1 sec; treat this metric as a device load percentage where 1000ms matches 100% load; provide the maximum value measurement within the measurement interval", + "type": "number" + }, + "diskIoTimeMin": { + "description": "milliseconds spent doing input/output operations over 1 sec; treat this metric as a device load percentage where 1000ms matches 100% load; provide the minimum value measurement within the measurement interval", + "type": "number" + }, + "diskMergedReadAvg": { + "description": "number of logical read operations that were merged into physical read operations, e.g., two logical reads were served by one physical disk access; provide the average measurement within the measurement interval", + "type": "number" + }, + "diskMergedReadLast": { + "description": "number of logical read operations that were merged into physical read operations, e.g., two logical reads were served by one physical disk access; provide the last value measurement within the measurement interval", + "type": "number" + }, + "diskMergedReadMax": { + "description": "number of logical read operations that were merged into physical read operations, e.g., two logical reads were served by one physical disk access; provide the maximum value measurement within the measurement interval", + "type": "number" + }, + "diskMergedReadMin": { + "description": "number of logical read operations that were merged into physical read operations, e.g., two logical reads were served by one physical disk access; provide the minimum value measurement within the measurement interval", + "type": "number" + }, + "diskMergedWriteAvg": { + "description": "number of logical write operations that were merged into physical write operations, e.g., two logical writes were served by one physical disk access; provide the average measurement within the measurement interval", + "type": "number" + }, + "diskMergedWriteLast": { + "description": "number of logical write operations that were merged into physical write operations, e.g., two logical writes were served by one physical disk access; provide the last value measurement within the measurement interval", + "type": "number" + }, + "diskMergedWriteMax": { + "description": "number of logical write operations that were merged into physical write operations, e.g., two logical writes were served by one physical disk access; provide the maximum value measurement within the measurement interval", + "type": "number" + }, + "diskMergedWriteMin": { + "description": "number of logical write operations that were merged into physical write operations, e.g., two logical writes were served by one physical disk access; provide the minimum value measurement within the measurement interval", + "type": "number" + }, + "diskOctetsReadAvg": { + "description": "number of octets per second read from a disk or partition; provide the average measurement within the measurement interval", + "type": "number" + }, + "diskOctetsReadLast": { + "description": "number of octets per second read from a disk or partition; provide the last measurement within the measurement interval", + "type": "number" + }, + "diskOctetsReadMax": { + "description": "number of octets per second read from a disk or partition; provide the maximum measurement within the measurement interval", + "type": "number" + }, + "diskOctetsReadMin": { + "description": "number of octets per second read from a disk or partition; provide the minimum measurement within the measurement interval", + "type": "number" + }, + "diskOctetsWriteAvg": { + "description": "number of octets per second written to a disk or partition; provide the average measurement within the measurement interval", + "type": "number" + }, + "diskOctetsWriteLast": { + "description": "number of octets per second written to a disk or partition; provide the last measurement within the measurement interval", + "type": "number" + }, + "diskOctetsWriteMax": { + "description": "number of octets per second written to a disk or partition; provide the maximum measurement within the measurement interval", + "type": "number" + }, + "diskOctetsWriteMin": { + "description": "number of octets per second written to a disk or partition; provide the minimum measurement within the measurement interval", + "type": "number" + }, + "diskOpsReadAvg": { + "description": "number of read operations per second issued to the disk; provide the average measurement within the measurement interval", + "type": "number" + }, + "diskOpsReadLast": { + "description": "number of read operations per second issued to the disk; provide the last measurement within the measurement interval", + "type": "number" + }, + "diskOpsReadMax": { + "description": "number of read operations per second issued to the disk; provide the maximum measurement within the measurement interval", + "type": "number" + }, + "diskOpsReadMin": { + "description": "number of read operations per second issued to the disk; provide the minimum measurement within the measurement interval", + "type": "number" + }, + "diskOpsWriteAvg": { + "description": "number of write operations per second issued to the disk; provide the average measurement within the measurement interval", + "type": "number" + }, + "diskOpsWriteLast": { + "description": "number of write operations per second issued to the disk; provide the last measurement within the measurement interval", + "type": "number" + }, + "diskOpsWriteMax": { + "description": "number of write operations per second issued to the disk; provide the maximum measurement within the measurement interval", + "type": "number" + }, + "diskOpsWriteMin": { + "description": "number of write operations per second issued to the disk; provide the minimum measurement within the measurement interval", + "type": "number" + }, + "diskPendingOperationsAvg": { + "description": "queue size of pending I/O operations per second; provide the average measurement within the measurement interval", + "type": "number" + }, + "diskPendingOperationsLast": { + "description": "queue size of pending I/O operations per second; provide the last measurement within the measurement interval", + "type": "number" + }, + "diskPendingOperationsMax": { + "description": "queue size of pending I/O operations per second; provide the maximum measurement within the measurement interval", + "type": "number" + }, + "diskPendingOperationsMin": { + "description": "queue size of pending I/O operations per second; provide the minimum measurement within the measurement interval", + "type": "number" + }, + "diskReadCommandsAvg": { + "description": "average number of read commands issued per second to the disk over the measurementInterval", + "type": "number" + }, + "diskTime": { + "description": "nanoseconds spent on disk cache reads/writes within the measurement interval", + "type": "number" + }, + "diskTimeReadAvg": { + "description": "milliseconds a read operation took to complete; provide the average measurement within the measurement interval", + "type": "number" + }, + "diskTimeReadLast": { + "description": "milliseconds a read operation took to complete; provide the last measurement within the measurement interval", + "type": "number" + }, + "diskTimeReadMax": { + "description": "milliseconds a read operation took to complete; provide the maximum measurement within the measurement interval", + "type": "number" + }, + "diskTimeReadMin": { + "description": "milliseconds a read operation took to complete; provide the minimum measurement within the measurement interval", + "type": "number" + }, + "diskTimeWriteAvg": { + "description": "milliseconds a write operation took to complete; provide the average measurement within the measurement interval", + "type": "number" + }, + "diskTimeWriteLast": { + "description": "milliseconds a write operation took to complete; provide the last measurement within the measurement interval", + "type": "number" + }, + "diskTimeWriteMax": { + "description": "milliseconds a write operation took to complete; provide the maximum measurement within the measurement interval", + "type": "number" + }, + "diskTimeWriteMin": { + "description": "milliseconds a write operation took to complete; provide the minimum measurement within the measurement interval", + "type": "number" + }, + "diskTotalReadLatencyAvg": { + "description": "average read time from the perspective of a Guest OS: sum of the Kernel Read Latency and Physical Device Read Latency in milliseconds over the measurement interval", + "type": "number" + }, + "diskTotalWriteLatencyAvg": { + "description": "average write time from the perspective of a Guest OS: sum of the Kernel Write Latency and Physical Device Write Latency in milliseconds over the measurement interval", + "type": "number" + }, + "diskWeightedIoTimeAvg": { + "description": "measure in ms over 1 sec of both I/O completion time and the backlog that may be accumulating; value is the average within the collection interval", + "type": "number" + }, + "diskWeightedIoTimeLast": { + "description": "measure in ms over 1 sec of both I/O completion time and the backlog that may be accumulating; value is the last within the collection interval", + "type": "number" + }, + "diskWeightedIoTimeMax": { + "description": "measure in ms over 1 sec of both I/O completion time and the backlog that may be accumulating; value is the maximum within the collection interval", + "type": "number" + }, + "diskWeightedIoTimeMin": { + "description": "measure in ms over 1 sec of both I/O completion time and the backlog that may be accumulating; value is the minimum within the collection interval", + "type": "number" + }, + "diskWriteCommandsAvg": { + "description": "average number of write commands issued per second to the disk over the measurementInterval", + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "diskIdentifier" + ] + }, + "endOfCallVqmSummaries": { + "description": "provides end of call voice quality metrics", + "type": "object", + "properties": { + "adjacencyName": { + "description": " adjacency name", + "type": "string" + }, + "endpointAverageJitter": { + "description": "endpoint average jitter", + "type": "number" + }, + "endpointDescription": { + "description": "either Caller or Callee", + "type": "string", + "enum": [ + "Caller", + "Callee" + ] + }, + "endpointMaxJitter": { + "description": "endpoint maximum jitter", + "type": "number" + }, + "endpointRtpOctetsDiscarded": { + "description": "", + "type": "number" + }, + "endpointRtpOctetsLost": { + "description": "endpoint RTP octets lost", + "type": "number" + }, + "endpointRtpOctetsReceived": { + "description": "", + "type": "number" + }, + "endpointRtpOctetsSent": { + "description": "", + "type": "number" + }, + "endpointRtpPacketsDiscarded": { + "description": "", + "type": "number" + }, + "endpointRtpPacketsLost": { + "description": "endpoint RTP packets lost", + "type": "number" + }, + "endpointRtpPacketsReceived": { + "description": "", + "type": "number" + }, + "endpointRtpPacketsSent": { + "description": "", + "type": "number" + }, + "localAverageJitter": { + "description": "Local average jitter", + "type": "number" + }, + "localAverageJitterBufferDelay": { + "description": "Local average jitter delay", + "type": "number" + }, + "localMaxJitter": { + "description": "Local maximum jitter", + "type": "number" + }, + "localMaxJitterBufferDelay": { + "description": "Local maximum jitter delay", + "type": "number" + }, + "localRtpOctetsDiscarded": { + "description": "", + "type": "number" + }, + "localRtpOctetsLost": { + "description": "Local RTP octets lost", + "type": "number" + }, + "localRtpOctetsReceived": { + "description": "", + "type": "number" + }, + "localRtpOctetsSent": { + "description": "", + "type": "number" + }, + "localRtpPacketsDiscarded": { + "description": "", + "type": "number" + }, + "localRtpPacketsLost": { + "description": "Local RTP packets lost", + "type": "number" + }, + "localRtpPacketsReceived": { + "description": "", + "type": "number" + }, + "localRtpPacketsSent": { + "description": "", + "type": "number" + }, + "mosCqe": { + "description": "1-5 1dp", + "type": "number" + }, + "oneWayDelay": { + "description": "one-way path delay in milliseconds", + "type": "number" + }, + "packetLossPercent": { + "description": "Calculated percentage packet loss based on Endpoint RTP packets lost (as reported in RTCP) and Local RTP packets sent. Direction is based on Endpoint description (Caller, Callee). Decimal (2 dp)", + "type": "number" + }, + "rFactor": { + "description": "0-100", + "type": "number" + }, + "roundTripDelay": { + "description": "millisecs", + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "adjacencyName", + "endpointDescription" + ] + }, + "event": { + "description": "the root level of the common event format", + "type": "object", + "properties": { + "commonEventHeader": { + "$ref": "#/definitions/commonEventHeader" + }, + "faultFields": { + "$ref": "#/definitions/faultFields" + }, + "heartbeatFields": { + "$ref": "#/definitions/heartbeatFields" + }, + "measurementFields": { + "$ref": "#/definitions/measurementFields" + }, + "mobileFlowFields": { + "$ref": "#/definitions/mobileFlowFields" + }, + "notificationFields": { + "$ref": "#/definitions/notificationFields" + }, + "otherFields": { + "$ref": "#/definitions/otherFields" + }, + "pnfRegistrationFields": { + "$ref": "#/definitions/pnfRegistrationFields" + }, + "sipSignalingFields": { + "$ref": "#/definitions/sipSignalingFields" + }, + "stateChangeFields": { + "$ref": "#/definitions/stateChangeFields" + }, + "syslogFields": { + "$ref": "#/definitions/syslogFields" + }, + "thresholdCrossingAlertFields": { + "$ref": "#/definitions/thresholdCrossingAlertFields" + }, + "voiceQualityFields": { + "$ref": "#/definitions/voiceQualityFields" + } + }, + "additionalProperties": false, + "required": [ + "commonEventHeader" + ] + }, + "eventList": { + "description": "array of events", + "type": "array", + "items": { + "$ref": "#/definitions/event" + } + }, + "faultFields": { + "description": "fields specific to fault events", + "type": "object", + "properties": { + "alarmAdditionalInformation": { + "$ref": "#/definitions/hashMap" + }, + "alarmCondition": { + "description": "alarm condition reported by the device", + "type": "string" + }, + "alarmInterfaceA": { + "description": "card, port, channel or interface name of the device generating the alarm", + "type": "string" + }, + "eventCategory": { + "description": "Event category, for example: license, link, routing, security, signaling", + "type": "string" + }, + "eventSeverity": { + "description": "event severity", + "type": "string", + "enum": [ + "CRITICAL", + "MAJOR", + "MINOR", + "WARNING", + "NORMAL" + ] + }, + "eventSourceType": { + "description": "type of event source; examples: card, host, other, port, portThreshold, router, slotThreshold, switch, virtualMachine, virtualNetworkFunction", + "type": "string" + }, + "faultFieldsVersion": { + "description": "version of the faultFields block", + "type": "string", + "enum": [ + "4.0" + ] + }, + "specificProblem": { + "description": "short description of the alarm or problem", + "type": "string" + }, + "vfStatus": { + "description": "virtual function status enumeration", + "type": "string", + "enum": [ + "Active", + "Idle", + "Preparing to terminate", + "Ready to terminate", + "Requesting termination" + ] + } + }, + "additionalProperties": false, + "required": [ + "alarmCondition", + "eventSeverity", + "eventSourceType", + "faultFieldsVersion", + "specificProblem", + "vfStatus" + ] + }, + "filesystemUsage": { + "description": "disk usage of an identified virtual machine in gigabytes and/or gigabytes per second", + "type": "object", + "properties": { + "blockConfigured": { + "type": "number" + }, + "blockIops": { + "type": "number" + }, + "blockUsed": { + "type": "number" + }, + "ephemeralConfigured": { + "type": "number" + }, + "ephemeralIops": { + "type": "number" + }, + "ephemeralUsed": { + "type": "number" + }, + "filesystemName": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "blockConfigured", + "blockIops", + "blockUsed", + "ephemeralConfigured", + "ephemeralIops", + "ephemeralUsed", + "filesystemName" + ] + }, + "gtpPerFlowMetrics": { + "description": "Mobility GTP Protocol per flow metrics", + "type": "object", + "properties": { + "avgBitErrorRate": { + "description": "average bit error rate", + "type": "number" + }, + "avgPacketDelayVariation": { + "description": "Average packet delay variation or jitter in milliseconds for received packets: Average difference between the packet timestamp and time received for all pairs of consecutive packets", + "type": "number" + }, + "avgPacketLatency": { + "description": "average delivery latency", + "type": "number" + }, + "avgReceiveThroughput": { + "description": "average receive throughput", + "type": "number" + }, + "avgTransmitThroughput": { + "description": "average transmit throughput", + "type": "number" + }, + "durConnectionFailedStatus": { + "description": "duration of failed state in milliseconds, computed as the cumulative time between a failed echo request and the next following successful error request, over this reporting interval", + "type": "number" + }, + "durTunnelFailedStatus": { + "description": "Duration of errored state, computed as the cumulative time between a tunnel error indicator and the next following non-errored indicator, over this reporting interval", + "type": "number" + }, + "flowActivatedBy": { + "description": "Endpoint activating the flow", + "type": "string" + }, + "flowActivationEpoch": { + "description": "Time the connection is activated in the flow (connection) being reported on, or transmission time of the first packet if activation time is not available", + "type": "number" + }, + "flowActivationMicrosec": { + "description": "Integer microseconds for the start of the flow connection", + "type": "number" + }, + "flowActivationTime": { + "description": "time the connection is activated in the flow being reported on, or transmission time of the first packet if activation time is not available; with RFC 2822 compliant format: Sat, 13 Mar 2010 11:29:05 -0800", + "type": "string" + }, + "flowDeactivatedBy": { + "description": "Endpoint deactivating the flow", + "type": "string" + }, + "flowDeactivationEpoch": { + "description": "Time for the start of the flow connection, in integer UTC epoch time aka UNIX time", + "type": "number" + }, + "flowDeactivationMicrosec": { + "description": "Integer microseconds for the start of the flow connection", + "type": "number" + }, + "flowDeactivationTime": { + "description": "Transmission time of the first packet in the flow connection being reported on; with RFC 2822 compliant format: Sat, 13 Mar 2010 11:29:05 -0800", + "type": "string" + }, + "flowStatus": { + "description": "connection status at reporting time as a working / inactive / failed indicator value", + "type": "string" + }, + "gtpConnectionStatus": { + "description": "Current connection state at reporting time", + "type": "string" + }, + "gtpTunnelStatus": { + "description": "Current tunnel state at reporting time", + "type": "string" + }, + "ipTosCountList": { + "$ref": "#/definitions/hashMap" + }, + "ipTosList": { + "description": "Array of unique IP Type-of-Service values observed in the flow where values range from '0' to '255'", + "type": "array", + "items": { + "type": "string" + } + }, + "largePacketRtt": { + "description": "large packet round trip time", + "type": "number" + }, + "largePacketThreshold": { + "description": "large packet threshold being applied", + "type": "number" + }, + "maxPacketDelayVariation": { + "description": "Maximum packet delay variation or jitter in milliseconds for received packets: Maximum of the difference between the packet timestamp and time received for all pairs of consecutive packets", + "type": "number" + }, + "maxReceiveBitRate": { + "description": "maximum receive bit rate", + "type": "number" + }, + "maxTransmitBitRate": { + "description": "maximum transmit bit rate", + "type": "number" + }, + "mobileQciCosCountList": { + "$ref": "#/definitions/hashMap" + }, + "mobileQciCosList": { + "description": "Array of unique LTE QCI or UMTS class-of-service values observed in the flow", + "type": "array", + "items": { + "type": "string" + } + }, + "numActivationFailures": { + "description": "Number of failed activation requests, as observed by the reporting node", + "type": "number" + }, + "numBitErrors": { + "description": "number of errored bits", + "type": "number" + }, + "numBytesReceived": { + "description": "number of bytes received, including retransmissions", + "type": "number" + }, + "numBytesTransmitted": { + "description": "number of bytes transmitted, including retransmissions", + "type": "number" + }, + "numDroppedPackets": { + "description": "number of received packets dropped due to errors per virtual interface", + "type": "number" + }, + "numGtpEchoFailures": { + "description": "Number of Echo request path failures where failed paths are defined in 3GPP TS 29.281 sec 7.2.1 and 3GPP TS 29.060 sec. 11.2", + "type": "number" + }, + "numGtpTunnelErrors": { + "description": "Number of tunnel error indications where errors are defined in 3GPP TS 29.281 sec 7.3.1 and 3GPP TS 29.060 sec. 11.1", + "type": "number" + }, + "numHttpErrors": { + "description": "Http error count", + "type": "number" + }, + "numL7BytesReceived": { + "description": "number of tunneled layer 7 bytes received, including retransmissions", + "type": "number" + }, + "numL7BytesTransmitted": { + "description": "number of tunneled layer 7 bytes transmitted, excluding retransmissions", + "type": "number" + }, + "numLostPackets": { + "description": "number of lost packets", + "type": "number" + }, + "numOutOfOrderPackets": { + "description": "number of out-of-order packets", + "type": "number" + }, + "numPacketErrors": { + "description": "number of errored packets", + "type": "number" + }, + "numPacketsReceivedExclRetrans": { + "description": "number of packets received, excluding retransmission", + "type": "number" + }, + "numPacketsReceivedInclRetrans": { + "description": "number of packets received, including retransmission", + "type": "number" + }, + "numPacketsTransmittedInclRetrans": { + "description": "number of packets transmitted, including retransmissions", + "type": "number" + }, + "numRetries": { + "description": "number of packet retries", + "type": "number" + }, + "numTimeouts": { + "description": "number of packet timeouts", + "type": "number" + }, + "numTunneledL7BytesReceived": { + "description": "number of tunneled layer 7 bytes received, excluding retransmissions", + "type": "number" + }, + "roundTripTime": { + "description": "round trip time", + "type": "number" + }, + "tcpFlagCountList": { + "$ref": "#/definitions/hashMap" + }, + "tcpFlagList": { + "description": "Array of unique TCP Flags observed in the flow", + "type": "array", + "items": { + "type": "string" + } + }, + "timeToFirstByte": { + "description": "Time in milliseconds between the connection activation and first byte received", + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "avgBitErrorRate", + "avgPacketDelayVariation", + "avgPacketLatency", + "avgReceiveThroughput", + "avgTransmitThroughput", + "flowActivationEpoch", + "flowActivationMicrosec", + "flowDeactivationEpoch", + "flowDeactivationMicrosec", + "flowDeactivationTime", + "flowStatus", + "maxPacketDelayVariation", + "numActivationFailures", + "numBitErrors", + "numBytesReceived", + "numBytesTransmitted", + "numDroppedPackets", + "numL7BytesReceived", + "numL7BytesTransmitted", + "numLostPackets", + "numOutOfOrderPackets", + "numPacketErrors", + "numPacketsReceivedExclRetrans", + "numPacketsReceivedInclRetrans", + "numPacketsTransmittedInclRetrans", + "numRetries", + "numTimeouts", + "numTunneledL7BytesReceived", + "roundTripTime", + "timeToFirstByte" + ] + }, + "hashMap": { + "description": "an associative array which is an array of key:value pairs", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "default": {} + }, + "heartbeatFields": { + "description": "optional field block for fields specific to heartbeat events", + "type": "object", + "properties": { + "additionalFields": { + "$ref": "#/definitions/hashMap" + }, + "heartbeatFieldsVersion": { + "description": "version of the heartbeatFields block", + "type": "string", + "enum": [ + "3.0" + ] + }, + "heartbeatInterval": { + "description": "current heartbeat interval in seconds", + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "heartbeatFieldsVersion", + "heartbeatInterval" + ] + }, + "hugePages": { + "description": "metrics on system hugepages", + "type": "object", + "properties": { + "bytesFree": { + "description": "number of free hugepages in bytes", + "type": "number" + }, + "bytesUsed": { + "description": "number of used hugepages in bytes", + "type": "number" + }, + "hugePagesIdentifier": { + "description": "hugePages identifier", + "type": "number" + }, + "percentFree": { + "description": "number of free hugepages in percent", + "type": "number" + }, + "percentUsed": { + "description": "number of free hugepages in percent", + "type": "number" + }, + "vmPageNumberFree": { + "description": "number of free vmPages in numbers", + "type": "number" + }, + "vmPageNumberUsed": { + "description": "number of used vmPages in numbers", + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "hugePagesIdentifier" + ] + }, + "internalHeaderFields": { + "description": "enrichment fields for internal VES Event Listener service use only, not supplied by event sources", + "type": "object" + }, + "ipmi": { + "description": "intelligent platform management interface metrics", + "type": "object", + "properties": { + "exitAirTemperature": { + "description": "system fan exit air flow temperature in celsius", + "type": "number" + }, + "frontPanelTemperature": { + "description": "front panel temperature in celsius", + "type": "number" + }, + "ioModuleTemperature": { + "description": "io module temperature in celsius", + "type": "number" + }, + "ipmiBaseboardTemperatureArray": { + "description": "array of ipmiBaseboardTemperature objects", + "type": "array", + "items": { + "$ref": "#/definitions/ipmiBaseboardTemperature" + } + }, + "ipmiBaseboardVoltageRegulatorArray": { + "description": "array of ipmiBaseboardVoltageRegulator objects", + "type": "array", + "items": { + "$ref": "#/definitions/ipmiBaseboardVoltageRegulator" + } + }, + "ipmiBatteryArray": { + "description": "array of ipmiBattery objects", + "type": "array", + "items": { + "$ref": "#/definitions/ipmiBattery" + } + }, + "ipmiFanArray": { + "description": "array of ipmiFan objects", + "type": "array", + "items": { + "$ref": "#/definitions/ipmiFan" + } + }, + "ipmiHsbpArray": { + "description": "array of ipmiHsbp objects", + "type": "array", + "items": { + "$ref": "#/definitions/ipmiHsbp" + } + }, + "ipmiGlobalAggregateTemperatureMarginArray": { + "description": "array of ipmiGlobalAggregateTemperatureMargin objects", + "type": "array", + "items": { + "$ref": "#/definitions/ipmiGlobalAggregateTemperatureMargin" + } + }, + "ipmiNicArray": { + "description": "array of ipmiNic objects", + "type": "array", + "items": { + "$ref": "#/definitions/ipmiNic" + } + }, + "ipmiPowerSupplyArray": { + "description": "array of ipmiPowerSupply objects", + "type": "array", + "items": { + "$ref": "#/definitions/ipmiPowerSupply" + } + }, + "ipmiProcessorArray": { + "description": "array of ipmiProcessor objects", + "type": "array", + "items": { + "$ref": "#/definitions/ipmiProcessor" + } + }, + "systemAirflow": { + "description": "airfflow in cubic feet per minute (cfm)", + "type": "number" + } + }, + "additionalProperties": false + }, + "ipmiBaseboardTemperature": { + "description": "intelligent platform management interface (ipmi) baseboard temperature metrics", + "type": "object", + "properties": { + "baseboardTemperatureIdentifier": { + "description": "identifier for the location where the temperature is taken", + "type": "string" + }, + "baseboardTemperature": { + "description": "baseboard temperature in celsius", + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "baseboardTemperatureIdentifier" + ] + }, + "ipmiBaseboardVoltageRegulator": { + "description": "intelligent platform management interface (ipmi) baseboard voltage regulator metrics", + "type": "object", + "properties": { + "baseboardVoltageRegulatorIdentifier": { + "description": "identifier for the baseboard voltage regulator", + "type": "string" + }, + "voltageRegulatorTemperature": { + "description": "voltage regulator temperature in celsius", + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "baseboardVoltageRegulatorIdentifier" + ] + }, + "ipmiBattery": { + "description": "intelligent platform management interface (ipmi) battery metrics", + "type": "object", + "properties": { + "batteryIdentifier": { + "description": "identifier for the battery", + "type": "string" + }, + "batteryType": { + "description": "type of battery", + "type": "string" + }, + "batteryVoltageLevel": { + "description": "battery voltage level", + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "batteryIdentifier" + ] + }, + "ipmiFan": { + "description": "intelligent platform management interface (ipmi) fan metrics", + "type": "object", + "properties": { + "fanIdentifier": { + "description": "identifier for the fan", + "type": "string" + }, + "fanSpeed": { + "description": "fan speed in revolutions per minute (rpm)", + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "fanIdentifier" + ] + }, + "ipmiGlobalAggregateTemperatureMargin": { + "description": "intelligent platform management interface (ipmi) global aggregate temperature margin", + "type": "object", + "properties": { + "ipmiGlobalAggregateTemperatureMarginIdentifier": { + "description": "identifier for the ipmi global aggregate temperature margin metrics", + "type": "string" + }, + "globalAggregateTemperatureMargin": { + "description": "the difference between the current global aggregate temperature, in celsius, and the global aggregate throttling thermal trip point", + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "ipmiGlobalAggregateTemperatureMarginIdentifier", + "globalAggregateTemperatureMargin" + ] + }, + "ipmiHsbp": { + "description": "intelligent platform management interface (ipmi) hot swap backplane power metrics", + "type": "object", + "properties": { + "hsbpIdentifier": { + "description": "identifier for the hot swap backplane power unit", + "type": "string" + }, + "hsbpTemperature": { + "description": "hot swap backplane power temperature in celsius", + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "hsbpIdentifier" + ] + }, + "ipmiNic": { + "description": "intelligent platform management interface (ipmi) network interface control card (nic) metrics", + "type": "object", + "properties": { + "nicIdentifier": { + "description": "identifier for the network interface control card", + "type": "string" + }, + "nicTemperature": { + "description": "nic temperature in celsius", + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "nicIdentifier" + ] + }, + "ipmiPowerSupply": { + "description": "intelligent platform management interface (ipmi) power supply metrics", + "type": "object", + "properties": { + "powerSupplyIdentifier": { + "description": "identifier for the power supply", + "type": "string" + }, + "powerSupplyInputPower": { + "description": "input power in watts", + "type": "number" + }, + "powerSupplyCurrentOutputPercent": { + "description": "current output voltage as a percentage of the design specified level", + "type": "number" + }, + "powerSupplyTemperature": { + "description": "power supply temperature in celsius", + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "powerSupplyIdentifier" + ] + }, + "ipmiProcessor": { + "description": "intelligent platform management interface processor metrics", + "type": "object", + "properties": { + "processorIdentifier": { + "description": "identifier for an ipmi processor", + "type": "string" + }, + "processorThermalControlPercent": { + "description": "io module temperature in celsius", + "type": "number" + }, + "processorDtsThermalMargin": { + "description": "front panel temperature in celsius", + "type": "number" + }, + "processorDimmAggregateThermalMarginArray": { + "description": "array of processorDimmAggregateThermalMargin objects", + "type": "array", + "items": { + "$ref": "#/definitions/processorDimmAggregateThermalMargin" + } + } + }, + "additionalProperties": false, + "required": [ + "processorIdentifier" + ] + }, + "jsonObject": { + "description": "json object schema, name and other meta-information along with one or more object instances", + "type": "object", + "properties": { + "objectInstances": { + "description": "one or more instances of the jsonObject", + "type": "array", + "items": { + "$ref": "#/definitions/jsonObjectInstance" + } + }, + "objectName": { + "description": "name of the JSON Object", + "type": "string" + }, + "objectSchema": { + "description": "json schema for the object", + "type": "string" + }, + "objectSchemaUrl": { + "description": "Url to the json schema for the object", + "type": "string" + }, + "nfSubscribedObjectName": { + "description": "name of the object associated with the nfSubscriptonId", + "type": "string" + }, + "nfSubscriptionId": { + "description": "identifies an openConfig telemetry subscription on a network function, which configures the network function to send complex object data associated with the jsonObject", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "objectInstances", + "objectName" + ] + }, + "jsonObjectInstance": { + "description": "meta-information about an instance of a jsonObject along with the actual object instance", + "type": "object", + "properties": { + "jsonObject": { + "$ref": "#/definitions/jsonObject" + }, + "objectInstance": { + "description": "an instance conforming to the jsonObject objectSchema", + "type": "object" + }, + "objectInstanceEpochMicrosec": { + "description": "the unix time aka epoch time associated with this objectInstance--as microseconds elapsed since 1 Jan 1970 not including leap seconds", + "type": "number" + }, + "objectKeys": { + "description": "an ordered set of keys that identifies this particular instance of jsonObject", + "type": "array", + "items": { + "$ref": "#/definitions/key" + } + } + }, + "additionalProperties": false + }, + "key": { + "description": "tuple which provides the name of a key along with its value and relative order", + "type": "object", + "properties": { + "keyName": { + "description": "name of the key", + "type": "string" + }, + "keyOrder": { + "description": "relative sequence or order of the key with respect to other keys", + "type": "integer" + }, + "keyValue": { + "description": "value of the key", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "keyName" + ] + }, + "latencyBucketMeasure": { + "description": "number of counts falling within a defined latency bucket", + "type": "object", + "properties": { + "countsInTheBucket": { + "type": "number" + }, + "highEndOfLatencyBucket": { + "type": "number" + }, + "lowEndOfLatencyBucket": { + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "countsInTheBucket" + ] + }, + "load": { + "description": "/proc/loadavg cpu utilization and io utilization metrics", + "type": "object", + "properties": { + "longTerm": { + "description": "number of jobs in the run queue (state R, cpu utilization) or waiting for disk I/O (state D, io utilization) averaged over 15 minutes using /proc/loadavg", + "type": "number" + }, + "midTerm": { + "description": "number of jobs in the run queue (state R, cpu utilization) or waiting for disk I/O (state D, io utilization) averaged over 5 minutes using /proc/loadavg", + "type": "number" + }, + "shortTerm": { + "description": "number of jobs in the run queue (state R, cpu utilization) or waiting for disk I/O (state D, io utilization) averaged over 1 minute using /proc/loadavg", + "type": "number" + } + }, + "additionalProperties": false + }, + "machineCheckException": { + "description": "metrics on vm machine check exceptions", + "type": "object", + "properties": { + "correctedMemoryErrors": { + "description": "total hardware errors that were corrected by the hardware (e.g. data corruption corrected via ECC) over the measurementInterval", + "type": "number" + }, + "correctedMemoryErrorsIn1Hr": { + "description": "total hardware errors that were corrected by the hardware over the last one hour", + "type": "number" + }, + "uncorrectedMemoryErrors": { + "description": "total uncorrected hardware errors that were detected by the hardware (e.g., causing data corruption) over the measurementInterval", + "type": "number" + }, + "uncorrectedMemoryErrorsIn1Hr": { + "description": "total uncorrected hardware errors that were detected by the hardware over the last one hour", + "type": "number" + }, + "vmIdentifier": { + "description": "virtual machine identifier associated with the machine check exception", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "vmIdentifier" + ] + }, + "measurementFields": { + "description": "measurement fields", + "type": "object", + "properties": { + "additionalFields": { + "$ref": "#/definitions/hashMap" + }, + "additionalMeasurements": { + "$ref": "#/definitions/arrayOfNamedHashMap" + }, + "additionalObjects": { + "$ref": "#/definitions/arrayOfJsonObject" + }, + "codecUsageArray": { + "description": "array of codecs in use", + "type": "array", + "items": { + "$ref": "#/definitions/codecsInUse" + } + }, + "concurrentSessions": { + "description": "peak concurrent sessions for the VM or xNF over the measurementInterval", + "type": "integer" + }, + "configuredEntities": { + "description": "over the measurementInterval, peak total number of: users, subscribers, devices, adjacencies, etc., for the VM, or subscribers, devices, etc., for the xNF", + "type": "integer" + }, + "cpuUsageArray": { + "description": "usage of an array of CPUs", + "type": "array", + "items": { + "$ref": "#/definitions/cpuUsage" + } + }, + "diskUsageArray": { + "description": "usage of an array of disks", + "type": "array", + "items": { + "$ref": "#/definitions/diskUsage" + } + }, + "featureUsageArray": { + "$ref": "#/definitions/hashMap" + }, + "filesystemUsageArray": { + "description": "filesystem usage of the VM on which the xNFC reporting the event is running", + "type": "array", + "items": { + "$ref": "#/definitions/filesystemUsage" + } + }, + "hugePagesArray": { + "description": "array of metrics on hugepPages", + "type": "array", + "items": { + "$ref": "#/definitions/hugePages" + } + }, + "ipmi": { + "$ref": "#/definitions/ipmi" + }, + "latencyDistribution": { + "description": "array of integers representing counts of requests whose latency in milliseconds falls within per-xNF configured ranges", + "type": "array", + "items": { + "$ref": "#/definitions/latencyBucketMeasure" + } + }, + "loadArray": { + "description": "array of system load metrics", + "type": "array", + "items": { + "$ref": "#/definitions/load" + } + }, + "machineCheckExceptionArray": { + "description": "array of machine check exceptions", + "type": "array", + "items": { + "$ref": "#/definitions/machineCheckException" + } + }, + "meanRequestLatency": { + "description": "mean seconds required to respond to each request for the VM on which the xNFC reporting the event is running", + "type": "number" + }, + "measurementInterval": { + "description": "interval over which measurements are being reported in seconds", + "type": "number" + }, + "measurementFieldsVersion": { + "description": "version of the measurementFields block", + "type": "string", + "enum": [ + "4.0" + ] + }, + "memoryUsageArray": { + "description": "memory usage of an array of VMs", + "type": "array", + "items": { + "$ref": "#/definitions/memoryUsage" + } + }, + "numberOfMediaPortsInUse": { + "description": "number of media ports in use", + "type": "integer" + }, + "requestRate": { + "description": "peak rate of service requests per second to the xNF over the measurementInterval", + "type": "number" + }, + "nfcScalingMetric": { + "description": "represents busy-ness of the network function from 0 to 100 as reported by the xNFC", + "type": "integer" + }, + "nicPerformanceArray": { + "description": "usage of an array of network interface cards", + "type": "array", + "items": { + "$ref": "#/definitions/nicPerformance" + } + }, + "processStatsArray": { + "description": "array of metrics on system processes", + "type": "array", + "items": { + "$ref": "#/definitions/processStats" + } + } + }, + "additionalProperties": false, + "required": [ + "measurementInterval", + "measurementFieldsVersion" + ] + }, + "memoryUsage": { + "description": "memory usage of an identified virtual machine", + "type": "object", + "properties": { + "memoryBuffered": { + "description": "kibibytes of temporary storage for raw disk blocks", + "type": "number" + }, + "memoryCached": { + "description": "kibibytes of memory used for cache", + "type": "number" + }, + "memoryConfigured": { + "description": "kibibytes of memory configured in the virtual machine on which the xNFC reporting the event is running", + "type": "number" + }, + "memoryDemand": { + "description": "host demand in kibibytes", + "type": "number" + }, + "memoryFree": { + "description": "kibibytes of physical RAM left unused by the system", + "type": "number" + }, + "memoryLatencyAvg": { + "description": "Percentage of time the VM is waiting to access swapped or compressed memory", + "type": "number" + }, + "memorySharedAvg": { + "description": "shared memory in kilobytes", + "type": "number" + }, + "memorySlabRecl": { + "description": "the part of the slab that can be reclaimed such as caches measured in kibibytes", + "type": "number" + }, + "memorySlabUnrecl": { + "description": "the part of the slab that cannot be reclaimed even when lacking memory measured in kibibytes", + "type": "number" + }, + "memorySwapInAvg": { + "description": "Amount of memory swapped-in from host cache in kibibytes", + "type": "number" + }, + "memorySwapInRateAvg": { + "description": "rate at which memory is swapped from disk into active memory during the interval in kilobytes per second", + "type": "number" + }, + "memorySwapOutAvg": { + "description": "Amount of memory swapped-out to host cache in kibibytes", + "type": "number" + }, + "memorySwapOutRateAvg": { + "description": "rate at which memory is being swapped from active memory to disk during the current interval in kilobytes per second", + "type": "number" + }, + "memorySwapUsedAvg": { + "description": "space used for caching swapped pages in the host cache in kibibytes", + "type": "number" + }, + "memoryUsed": { + "description": "total memory minus the sum of free, buffered, cached and slab memory measured in kibibytes", + "type": "number" + }, + "percentMemoryUsage": { + "description": "Percentage of memory usage; value = (memoryUsed / (memoryUsed + memoryFree) x 100 if denomintor is nonzero, or 0, if otherwise", + "type": "number" + }, + "vmIdentifier": { + "description": "virtual machine identifier associated with the memory metrics", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "memoryFree", + "memoryUsed", + "vmIdentifier" + ] + }, + "mobileFlowFields": { + "description": "mobileFlow fields", + "type": "object", + "properties": { + "additionalFields": { + "$ref": "#/definitions/hashMap" + }, + "applicationType": { + "description": "Application type inferred", + "type": "string" + }, + "appProtocolType": { + "description": "application protocol", + "type": "string" + }, + "appProtocolVersion": { + "description": "application protocol version", + "type": "string" + }, + "cid": { + "description": "cell id", + "type": "string" + }, + "connectionType": { + "description": "Abbreviation referencing a 3GPP reference point e.g., S1-U, S11, etc", + "type": "string" + }, + "ecgi": { + "description": "Evolved Cell Global Id", + "type": "string" + }, + "flowDirection": { + "description": "Flow direction, indicating if the reporting node is the source of the flow or destination for the flow", + "type": "string" + }, + "gtpPerFlowMetrics": { + "$ref": "#/definitions/gtpPerFlowMetrics" + }, + "gtpProtocolType": { + "description": "GTP protocol", + "type": "string" + }, + "gtpVersion": { + "description": "GTP protocol version", + "type": "string" + }, + "httpHeader": { + "description": "HTTP request header, if the flow connects to a node referenced by HTTP", + "type": "string" + }, + "imei": { + "description": "IMEI for the subscriber UE used in this flow, if the flow connects to a mobile device", + "type": "string" + }, + "imsi": { + "description": "IMSI for the subscriber UE used in this flow, if the flow connects to a mobile device", + "type": "string" + }, + "ipProtocolType": { + "description": "IP protocol type e.g., TCP, UDP, RTP...", + "type": "string" + }, + "ipVersion": { + "description": "IP protocol version e.g., IPv4, IPv6", + "type": "string" + }, + "lac": { + "description": "location area code", + "type": "string" + }, + "mcc": { + "description": "mobile country code", + "type": "string" + }, + "mnc": { + "description": "mobile network code", + "type": "string" + }, + "mobileFlowFieldsVersion": { + "description": "version of the mobileFlowFields block", + "type": "string", + "enum": [ + "4.0" + ] + }, + "msisdn": { + "description": "MSISDN for the subscriber UE used in this flow, as an integer, if the flow connects to a mobile device", + "type": "string" + }, + "otherEndpointIpAddress": { + "description": "IP address for the other endpoint, as used for the flow being reported on", + "type": "string" + }, + "otherEndpointPort": { + "description": "IP Port for the reporting entity, as used for the flow being reported on", + "type": "integer" + }, + "otherFunctionalRole": { + "description": "Functional role of the other endpoint for the flow being reported on e.g., MME, S-GW, P-GW, PCRF...", + "type": "string" + }, + "rac": { + "description": "routing area code", + "type": "string" + }, + "radioAccessTechnology": { + "description": "Radio Access Technology e.g., 2G, 3G, LTE", + "type": "string" + }, + "reportingEndpointIpAddr": { + "description": "IP address for the reporting entity, as used for the flow being reported on", + "type": "string" + }, + "reportingEndpointPort": { + "description": "IP port for the reporting entity, as used for the flow being reported on", + "type": "integer" + }, + "sac": { + "description": "service area code", + "type": "string" + }, + "samplingAlgorithm": { + "description": "Integer identifier for the sampling algorithm or rule being applied in calculating the flow metrics if metrics are calculated based on a sample of packets, or 0 if no sampling is applied", + "type": "integer" + }, + "tac": { + "description": "transport area code", + "type": "string" + }, + "tunnelId": { + "description": "tunnel identifier", + "type": "string" + }, + "vlanId": { + "description": "VLAN identifier used by this flow", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "flowDirection", + "gtpPerFlowMetrics", + "ipProtocolType", + "ipVersion", + "mobileFlowFieldsVersion", + "otherEndpointIpAddress", + "otherEndpointPort", + "reportingEndpointIpAddr", + "reportingEndpointPort" + ] + }, + "namedHashMap": { + "description": "a hashMap which is associated with and described by a name", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "hashMap": { + "$ref": "#/definitions/hashMap" + } + }, + "additionalProperties": false, + "required": [ + "name", + "hashMap" + ] + }, + "nicPerformance": { + "description": "describes the performance and errors of an identified network interface card", + "type": "object", + "properties": { + "administrativeState": { + "description": "administrative state", + "type": "string", + "enum": [ + "inService", + "outOfService" + ] + }, + "nicIdentifier": { + "description": "nic identification", + "type": "string" + }, + "operationalState": { + "description": "operational state", + "type": "string", + "enum": [ + "inService", + "outOfService" + ] + }, + "receivedBroadcastPacketsAccumulated": { + "description": "Cumulative count of broadcast packets received as read at the end of the measurement interval", + "type": "number" + }, + "receivedBroadcastPacketsDelta": { + "description": "Count of broadcast packets received within the measurement interval", + "type": "number" + }, + "receivedDiscardedPacketsAccumulated": { + "description": "Cumulative count of discarded packets received as read at the end of the measurement interval", + "type": "number" + }, + "receivedDiscardedPacketsDelta": { + "description": "Count of discarded packets received within the measurement interval", + "type": "number" + }, + "receivedErrorPacketsAccumulated": { + "description": "Cumulative count of error packets received as read at the end of the measurement interval", + "type": "number" + }, + "receivedErrorPacketsDelta": { + "description": "Count of error packets received within the measurement interval", + "type": "number" + }, + "receivedMulticastPacketsAccumulated": { + "description": "Cumulative count of multicast packets received as read at the end of the measurement interval", + "type": "number" + }, + "receivedMulticastPacketsDelta": { + "description": "Count of multicast packets received within the measurement interval", + "type": "number" + }, + "receivedOctetsAccumulated": { + "description": "Cumulative count of octets received as read at the end of the measurement interval", + "type": "number" + }, + "receivedOctetsDelta": { + "description": "Count of octets received within the measurement interval", + "type": "number" + }, + "receivedTotalPacketsAccumulated": { + "description": "Cumulative count of all packets received as read at the end of the measurement interval", + "type": "number" + }, + "receivedPercentDiscard": { + "description": "Percentage of discarded packets received; value = (receivedDiscardedPacketsDelta / receivedTotalPacketsDelta) x 100, if denominator is nonzero, or 0, if otherwise", + "type": "number" + }, + "receivedPercentError": { + "description": "Percentage of error packets received; value = (receivedErrorPacketsDelta / receivedTotalPacketsDelta) x 100, if denominator is nonzero, or 0, if otherwise.", + "type": "number" + }, + "receivedTotalPacketsDelta": { + "description": "Count of all packets received within the measurement interval", + "type": "number" + }, + "receivedUnicastPacketsAccumulated": { + "description": "Cumulative count of unicast packets received as read at the end of the measurement interval", + "type": "number" + }, + "receivedUnicastPacketsDelta": { + "description": "Count of unicast packets received within the measurement interval", + "type": "number" + }, + "receivedUtilization": { + "description": "Percentage of utilization received; value = (receivedOctetsDelta / (speed x (lastEpochMicrosec - startEpochMicrosec))) x 100, if denominator is nonzero, or 0, if otherwise", + "type": "number" + }, + "speed": { + "description": "Speed configured in mbps", + "type": "number" + }, + "transmittedBroadcastPacketsAccumulated": { + "description": "Cumulative count of broadcast packets transmitted as read at the end of the measurement interval", + "type": "number" + }, + "transmittedBroadcastPacketsDelta": { + "description": "Count of broadcast packets transmitted within the measurement interval", + "type": "number" + }, + "transmittedDiscardedPacketsAccumulated": { + "description": "Cumulative count of discarded packets transmitted as read at the end of the measurement interval", + "type": "number" + }, + "transmittedDiscardedPacketsDelta": { + "description": "Count of discarded packets transmitted within the measurement interval", + "type": "number" + }, + "transmittedErrorPacketsAccumulated": { + "description": "Cumulative count of error packets transmitted as read at the end of the measurement interval", + "type": "number" + }, + "transmittedErrorPacketsDelta": { + "description": "Count of error packets transmitted within the measurement interval", + "type": "number" + }, + "transmittedMulticastPacketsAccumulated": { + "description": "Cumulative count of multicast packets transmitted as read at the end of the measurement interval", + "type": "number" + }, + "transmittedMulticastPacketsDelta": { + "description": "Count of multicast packets transmitted within the measurement interval", + "type": "number" + }, + "transmittedOctetsAccumulated": { + "description": "Cumulative count of octets transmitted as read at the end of the measurement interval", + "type": "number" + }, + "transmittedOctetsDelta": { + "description": "Count of octets transmitted within the measurement interval", + "type": "number" + }, + "transmittedTotalPacketsAccumulated": { + "description": "Cumulative count of all packets transmitted as read at the end of the measurement interval", + "type": "number" + }, + "transmittedTotalPacketsDelta": { + "description": "Count of all packets transmitted within the measurement interval", + "type": "number" + }, + "transmittedUnicastPacketsAccumulated": { + "description": "Cumulative count of unicast packets transmitted as read at the end of the measurement interval", + "type": "number" + }, + "transmittedUnicastPacketsDelta": { + "description": "Count of unicast packets transmitted within the measurement interval", + "type": "number" + }, + "transmittedPercentDiscard": { + "description": "Percentage of discarded packets transmitted; value = (transmittedDiscardedPacketsDelta / transmittedTotalPacketsDelta) x 100, if denominator is nonzero, or 0, if otherwise", + "type": "number" + }, + "transmittedPercentError": { + "description": "Percentage of error packets received; value = (transmittedErrorPacketsDelta / transmittedTotalPacketsDelta) x 100, if denominator is nonzero, or 0, if otherwise", + "type": "number" + }, + "transmittedUtilization": { + "description": "Percentage of utilization transmitted; value = (transmittedOctetsDelta / (speed x (lastEpochMicrosec - startEpochMicrosec))) x 100, if denominator is nonzero, or 0, if otherwise.", + "type": "number" + }, + "valuesAreSuspect": { + "description": "Indicates whether vNicPerformance values are likely inaccurate due to counter overflow or other condtions", + "type": "string", + "enum": [ + "true", + "false" + ] + } + }, + "additionalProperties": false, + "required": [ + "nicIdentifier", + "valuesAreSuspect" + ] + }, + "notificationFields": { + "description": "notification fields", + "type": "object", + "properties": { + "additionalFields": { + "$ref": "#/definitions/hashMap" + }, + "arrayOfNamedHashMap": { + "$ref": "#/definitions/arrayOfNamedHashMap" + }, + "changeContact": { + "description": "identifier for a contact related to the change", + "type": "string" + }, + "changeIdentifier": { + "description": "system or session identifier associated with the change", + "type": "string" + }, + "changeType": { + "description": "describes what has changed for the entity", + "type": "string" + }, + "newState": { + "description": "new state of the entity", + "type": "string" + }, + "oldState": { + "description": "previous state of the entity", + "type": "string" + }, + "notificationFieldsVersion": { + "description": "version of the notificationFields block", + "type": "string", + "enum": [ + "2.0" + ] + }, + "stateInterface": { + "description": "card or port name of the entity that changed state", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "changeIdentifier", + "changeType", + "notificationFieldsVersion" + ] + }, + "otherFields": { + "description": "fields for events belonging to the 'other' domain of the commonEventHeader domain enumeration", + "type": "object", + "properties": { + "arrayOfNamedHashMap": { + "$ref": "#/definitions/arrayOfNamedHashMap" + }, + "hashMap": { + "$ref": "#/definitions/hashMap" + }, + "jsonObjects": { + "$ref": "#/definitions/arrayOfJsonObject" + }, + "otherFieldsVersion": { + "description": "version of the otherFields block", + "type": "string", + "enum": [ + "3.0" + ] + } + }, + "additionalProperties": false, + "required": [ + "otherFieldsVersion" + ] + }, + "pnfRegistrationFields": { + "description": "hardware device registration fields", + "type": "object", + "properties": { + "additionalFields": { + "$ref": "#/definitions/hashMap" + }, + "lastServiceDate": { + "description": "TS 32.692 dateOfLastService = date of last service; e.g. 15022017", + "type": "string" + }, + "macAddress": { + "description": "MAC address of OAM interface of the unit", + "type": "string" + }, + "manufactureDate": { + "description": "TS 32.692 dateOfManufacture = manufacture date of the unit; 24032016", + "type": "string" + }, + "modelNumber": { + "description": "TS 32.692 versionNumber = version of the unit from vendor; e.g. AJ02. Maps to AAI equip-model", + "type": "string" + }, + "oamV4IpAddress": { + "description": "IPv4 m-plane IP address to be used by the manager to contact the PNF", + "type": "string" + }, + "oamV6IpAddress": { + "description": "IPv6 m-plane IP address to be used by the manager to contact the PNF", + "type": "string" + }, + "pnfRegistrationFieldsVersion": { + "description": "version of the pnfRegistrationFields block", + "type": "string", + "enum": [ + "2.0" + ] + }, + "serialNumber": { + "description": "TS 32.692 serialNumber = serial number of the unit; e.g. 6061ZW3", + "type": "string" + }, + "softwareVersion": { + "description": "TS 32.692 swName = active SW running on the unit; e.g. 5gDUv18.05.201", + "type": "string" + }, + "unitFamily": { + "description": "TS 32.692 vendorUnitFamilyType = general type of HW unit; e.g. BBU", + "type": "string" + }, + "unitType": { + "description": "TS 32.692 vendorUnitTypeNumber = vendor name for the unit; e.g. Airscale", + "type": "string" + }, + "vendorName": { + "description": "TS 32.692 vendorName = name of manufacturer; e.g. Nokia. Maps to AAI equip-vendor", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "pnfRegistrationFieldsVersion" + ] + }, + "processorDimmAggregateThermalMargin": { + "description": "intelligent platform management interface (ipmi) processor dual inline memory module aggregate thermal margin metrics", + "type": "object", + "properties": { + "processorDimmAggregateThermalMarginIdentifier": { + "description": "identifier for the aggregate thermal margin metrics from the processor dual inline memory module", + "type": "string" + }, + "thermalMargin": { + "description": "the difference between the DIMM's current temperature, in celsius, and the DIMM's throttling thermal trip point", + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "processorDimmAggregateThermalMarginIdentifier", + "thermalMargin" + ] + }, + "processStats": { + "description": "metrics on system processes", + "type": "object", + "properties": { + "forkRate": { + "description": "the number of threads created since the last reboot", + "type": "number" + }, + "processIdentifier": { + "description": "processIdentifier", + "type": "string" + }, + "psStateBlocked": { + "description": "the number of processes in a blocked state", + "type": "number" + }, + "psStatePaging": { + "description": "the number of processes in a paging state", + "type": "number" + }, + "psStateRunning": { + "description": "the number of processes in a running state", + "type": "number" + }, + "psStateSleeping": { + "description": "the number of processes in a sleeping state", + "type": "number" + }, + "psStateStopped": { + "description": "the number of processes in a stopped state", + "type": "number" + }, + "psStateZombie": { + "description": "the number of processes in a zombie state", + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "processIdentifier" + ] + }, + "requestError": { + "description": "standard request error data structure", + "type": "object", + "properties": { + "messageId": { + "description": "Unique message identifier of the format ABCnnnn where ABC is either SVC for Service Exceptions or POL for Policy Exception", + "type": "string" + }, + "text": { + "description": "Message text, with replacement variables marked with %n, where n is an index into the list of elements, starting at 1", + "type": "string" + }, + "url": { + "description": "Hyperlink to a detailed error resource e.g., an HTML page for browser user agents", + "type": "string" + }, + "variables": { + "description": "List of zero or more strings that represent the contents of the variables used by the message text", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "messageId", + "text" + ] + }, + "sipSignalingFields": { + "description": "sip signaling fields", + "type": "object", + "properties": { + "additionalInformation": { + "$ref": "#/definitions/hashMap" + }, + "compressedSip": { + "description": "the full SIP request/response including headers and bodies", + "type": "string" + }, + "correlator": { + "description": "this is the same for all events on this call", + "type": "string" + }, + "localIpAddress": { + "description": "IP address on xNF", + "type": "string" + }, + "localPort": { + "description": "port on xNF", + "type": "string" + }, + "remoteIpAddress": { + "description": "IP address of peer endpoint", + "type": "string" + }, + "remotePort": { + "description": "port of peer endpoint", + "type": "string" + }, + "sipSignalingFieldsVersion": { + "description": "version of the sipSignalingFields block", + "type": "string", + "enum": [ + "3.0" + ] + }, + "summarySip": { + "description": "the SIP Method or Response ('INVITE', '200 OK', 'BYE', etc)", + "type": "string" + }, + "vendorNfNameFields": { + "$ref": "#/definitions/vendorNfNameFields" + } + }, + "additionalProperties": false, + "required": [ + "correlator", + "localIpAddress", + "localPort", + "remoteIpAddress", + "remotePort", + "sipSignalingFieldsVersion", + "vendorNfNameFields" + ] + }, + "stateChangeFields": { + "description": "stateChange fields", + "type": "object", + "properties": { + "additionalFields": { + "$ref": "#/definitions/hashMap" + }, + "newState": { + "description": "new state of the entity", + "type": "string", + "enum": [ + "inService", + "maintenance", + "outOfService" + ] + }, + "oldState": { + "description": "previous state of the entity", + "type": "string", + "enum": [ + "inService", + "maintenance", + "outOfService" + ] + }, + "stateChangeFieldsVersion": { + "description": "version of the stateChangeFields block", + "type": "string", + "enum": [ + "4.0" + ] + }, + "stateInterface": { + "description": "card or port name of the entity that changed state", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "newState", + "oldState", + "stateChangeFieldsVersion", + "stateInterface" + ] + }, + "syslogFields": { + "description": "sysLog fields", + "type": "object", + "properties": { + "additionalFields": { + "$ref": "#/definitions/hashMap" + }, + "eventSourceHost": { + "description": "hostname of the device", + "type": "string" + }, + "eventSourceType": { + "description": "type of event source; examples: other, router, switch, host, card, port, slotThreshold, portThreshold, virtualMachine, virtualNetworkFunction", + "type": "string" + }, + "syslogFacility": { + "description": "numeric code from 0 to 23 for facility--see table in documentation", + "type": "integer" + }, + "syslogFieldsVersion": { + "description": "version of the syslogFields block", + "type": "string", + "enum": [ + "4.0" + ] + }, + "syslogMsg": { + "description": "syslog message", + "type": "string" + }, + "syslogMsgHost": { + "description": "hostname parsed from non-VES syslog message", + "type": "string" + }, + "syslogPri": { + "description": "0-192 combined severity and facility", + "type": "integer" + }, + "syslogProc": { + "description": "identifies the application that originated the message", + "type": "string" + }, + "syslogProcId": { + "description": "a change in the value of this field indicates a discontinuity in syslog reporting", + "type": "number" + }, + "syslogSData": { + "description": "syslog structured data consisting of a structured data Id followed by a set of key value pairs", + "type": "string" + }, + "syslogSdId": { + "description": "0-32 char in format name@number for example ourSDID@32473", + "type": "string" + }, + "syslogSev": { + "description": "numerical Code for severity derived from syslogPri as remaider of syslogPri / 8", + "type": "string", + "enum": [ + "Alert", + "Critical", + "Debug", + "Emergency", + "Error", + "Info", + "Notice", + "Warning" + ] + }, + "syslogTag": { + "description": "msgId indicating the type of message such as TCPOUT or TCPIN; NILVALUE should be used when no other value can be provided", + "type": "string" + }, + "syslogTs": { + "description": "timestamp parsed from non-VES syslog message", + "type": "string" + }, + "syslogVer": { + "description": "IANA assigned version of the syslog protocol specification - typically 1", + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "eventSourceType", + "syslogFieldsVersion", + "syslogMsg", + "syslogTag" + ] + }, + "thresholdCrossingAlertFields": { + "description": "fields specific to threshold crossing alert events", + "type": "object", + "properties": { + "additionalFields": { + "$ref": "#/definitions/hashMap" + }, + "additionalParameters": { + "description": "performance counters", + "type": "array", + "items": { + "$ref": "#/definitions/counter" + } + }, + "alertAction": { + "description": "Event action", + "type": "string", + "enum": [ + "CLEAR", + "CONT", + "SET" + ] + }, + "alertDescription": { + "description": "Unique short alert description such as IF-SHUB-ERRDROP", + "type": "string" + }, + "alertType": { + "description": "Event type", + "type": "string", + "enum": [ + "CARD-ANOMALY", + "ELEMENT-ANOMALY", + "INTERFACE-ANOMALY", + "SERVICE-ANOMALY" + ] + }, + "alertValue": { + "description": "Calculated API value (if applicable)", + "type": "string" + }, + "associatedAlertIdList": { + "description": "List of eventIds associated with the event being reported", + "type": "array", + "items": { + "type": "string" + } + }, + "collectionTimestamp": { + "description": "Time when the performance collector picked up the data; with RFC 2822 compliant format: Sat, 13 Mar 2010 11:29:05 -0800", + "type": "string" + }, + "dataCollector": { + "description": "Specific performance collector instance used", + "type": "string" + }, + "elementType": { + "description": "type of network element - internal ATT field", + "type": "string" + }, + "eventSeverity": { + "description": "event severity or priority", + "type": "string", + "enum": [ + "CRITICAL", + "MAJOR", + "MINOR", + "WARNING", + "NORMAL" + ] + }, + "eventStartTimestamp": { + "description": "Time closest to when the measurement was made; with RFC 2822 compliant format: Sat, 13 Mar 2010 11:29:05 -0800", + "type": "string" + }, + "interfaceName": { + "description": "Physical or logical port or card (if applicable)", + "type": "string" + }, + "networkService": { + "description": "network name - internal ATT field", + "type": "string" + }, + "possibleRootCause": { + "description": "Reserved for future use", + "type": "string" + }, + "thresholdCrossingFieldsVersion": { + "description": "version of the thresholdCrossingAlertFields block", + "type": "string", + "enum": [ + "4.0" + ] + } + }, + "additionalProperties": false, + "required": [ + "additionalParameters", + "alertAction", + "alertDescription", + "alertType", + "collectionTimestamp", + "eventSeverity", + "eventStartTimestamp", + "thresholdCrossingFieldsVersion" + ] + }, + "vendorNfNameFields": { + "description": "provides vendor, nf and nfModule identifying information", + "type": "object", + "properties": { + "vendorName": { + "description": "network function vendor name", + "type": "string" + }, + "nfModuleName": { + "description": "name of the nfModule generating the event", + "type": "string" + }, + "nfName": { + "description": "name of the network function generating the event", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "vendorName" + ] + }, + "voiceQualityFields": { + "description": "provides statistics related to customer facing voice products", + "type": "object", + "properties": { + "additionalInformation": { + "$ref": "#/definitions/hashMap" + }, + "calleeSideCodec": { + "description": "callee codec for the call", + "type": "string" + }, + "callerSideCodec": { + "description": "caller codec for the call", + "type": "string" + }, + "correlator": { + "description": "this is the same for all events on this call", + "type": "string" + }, + "endOfCallVqmSummaries": { + "$ref": "#/definitions/endOfCallVqmSummaries" + }, + "phoneNumber": { + "description": "phone number associated with the correlator", + "type": "string" + }, + "midCallRtcp": { + "description": "Base64 encoding of the binary RTCP data excluding Eth/IP/UDP headers", + "type": "string" + }, + "vendorNfNameFields": { + "$ref": "#/definitions/vendorNfNameFields" + }, + "voiceQualityFieldsVersion": { + "description": "version of the voiceQualityFields block", + "type": "string", + "enum": [ + "4.0" + ] + } + }, + "additionalProperties": false, + "required": [ + "calleeSideCodec", + "callerSideCodec", + "correlator", + "midCallRtcp", + "vendorNfNameFields", + "voiceQualityFieldsVersion" + ] + } + } +} diff --git a/src/E2AP-c/e2ap_control.cc b/src/E2AP-c/e2ap_control.cc new file mode 100644 index 0000000..0cb76a5 --- /dev/null +++ b/src/E2AP-c/e2ap_control.cc @@ -0,0 +1,253 @@ +/* +================================================================================== + + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ +/* + * ric_control_request.c + * + * Created on: Jul 11, 2019 + * Author: sjana, Ashwin Sridharan + */ + +#include + +// Set up the initiating message and also allocate protocolIEs in container +// Note : this bypasses requirement to use ASN_SEQUENCE_ADD. We can directly +// assign pointers to the array in ProtocolIE. However, this also leaves us on the +// hook to manually clear the memory + +ric_control_request::ric_control_request(void){ + + e2ap_pdu_obj = 0; + e2ap_pdu_obj = (E2AP_PDU_t * )calloc(1, sizeof(E2AP_PDU_t)); + assert(e2ap_pdu_obj != 0); + + initMsg = 0; + initMsg = (InitiatingMessage_t * )calloc(1, sizeof(InitiatingMessage_t)); + assert(initMsg != 0); + + IE_array = 0; + IE_array = (RICcontrolRequest_IEs_t *)calloc(NUM_CONTROL_REQUEST_IES, sizeof(RICcontrolRequest_IEs_t)); + assert(IE_array != 0); + + e2ap_pdu_obj->present = E2AP_PDU_PR_initiatingMessage; + e2ap_pdu_obj->choice.initiatingMessage = initMsg; + + RICcontrolRequest_t * ric_control_request = &(initMsg->value.choice.RICcontrolRequest); + for(int i = 0; i < NUM_CONTROL_REQUEST_IES; i++){ + ASN_SEQUENCE_ADD(&(ric_control_request->protocolIEs), &(IE_array[i])); + } + +}; + + +// Clear assigned protocolIE list from RIC control_request IE container +ric_control_request::~ric_control_request(void){ + + mdclog_write(MDCLOG_INFO, "Freeing E2AP Control Request object memory"); + + RICcontrolRequest_t *ricControl_Request = &(initMsg->value.choice.RICcontrolRequest); + for(int i = 0; i < ricControl_Request->protocolIEs.list.size; i++){ + ricControl_Request->protocolIEs.list.array[i] = 0; + } + + if (ricControl_Request->protocolIEs.list.size > 0){ + free(ricControl_Request->protocolIEs.list.array); + ricControl_Request->protocolIEs.list.size = 0; + ricControl_Request->protocolIEs.list.count = 0; + } + + free(IE_array); + free(initMsg); + e2ap_pdu_obj->choice.initiatingMessage = 0; + + ASN_STRUCT_FREE(asn_DEF_E2AP_PDU, e2ap_pdu_obj); + mdclog_write(MDCLOG_INFO, "Freed E2AP Control Request object mempory"); + +} + + +bool ric_control_request::encode_e2ap_control_request(unsigned char *buf, size_t *size, ric_control_helper & dinput){ + + initMsg->procedureCode = ProcedureCode_id_ricControl; + initMsg->criticality = Criticality_ignore; + initMsg->value.present = InitiatingMessage__value_PR_RICcontrolRequest; + + bool res; + + res = set_fields(initMsg, dinput); + if (!res){ + return false; + } + + int ret_constr = asn_check_constraints(&asn_DEF_E2AP_PDU, (void *) e2ap_pdu_obj, errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(errbuf, errbuf_len); + error_string = "Constraints failed for encoding control . Reason = " + error_string; + return false; + } + + //xer_fprint(stdout, &asn_DEF_E2AP_PDU, e2ap_pdu_obj); + + asn_enc_rval_t retval = asn_encode_to_buffer(0, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2AP_PDU, e2ap_pdu_obj, buf, *size); + + if(retval.encoded == -1){ + error_string.assign(strerror(errno)); + return false; + } + else { + if(*size < retval.encoded){ + std::stringstream ss; + ss <<"Error encoding event trigger definition. Reason = encoded pdu size " << retval.encoded << " exceeds buffer size " << *size << std::endl; + error_string = ss.str(); + return false; + } + } + + *size = retval.encoded; + return true; + +} + +bool ric_control_request::set_fields(InitiatingMessage_t *initMsg, ric_control_helper &dinput){ + unsigned int ie_index; + + if (initMsg == 0){ + error_string = "Invalid reference for E2AP Control_Request message in set_fields"; + return false; + } + + // for(i = 0; i < NUM_CONTROL_REQUEST_IES;i++){ + // memset(&(IE_array[i]), 0, sizeof(RICcontrolRequest_IEs_t)); + // } + + + ie_index = 0; + RICcontrolRequest_IEs_t *ies_ricreq = &IE_array[ie_index]; + ies_ricreq->criticality = Criticality_reject; + ies_ricreq->id = ProtocolIE_ID_id_RICrequestID; + ies_ricreq->value.present = RICcontrolRequest_IEs__value_PR_RICrequestID; + RICrequestID_t *ricrequest_ie = &ies_ricreq->value.choice.RICrequestID; + ricrequest_ie->ricRequestorID = dinput.req_id; + ricrequest_ie->ricRequestSequenceNumber = dinput.req_seq_no; + + ie_index = 1; + RICcontrolRequest_IEs_t *ies_ranfunc = &IE_array[ie_index]; + ies_ranfunc->criticality = Criticality_reject; + ies_ranfunc->id = ProtocolIE_ID_id_RANfunctionID; + ies_ranfunc->value.present = RICcontrolRequest_IEs__value_PR_RANfunctionID; + RANfunctionID_t *ranfunction_ie = &ies_ranfunc->value.choice.RANfunctionID; + *ranfunction_ie = dinput.func_id; + + + // ie_index = 2; + // RICcontrolRequest_IEs_t *ies_riccallprocessid = &IE_array[ie_index]; + // ies_riccallprocessid->criticality = Criticality_reject; + // ies_riccallprocessid->id = ProtocolIE_ID_id_RICcallProcessID; + // ies_riccallprocessid->value.present = RICcontrolRequest_IEs__value_PR_RICcallProcessID; + // RICcallProcessID_t *riccallprocessid_ie = &ies_riccallprocessid->value.choice.RICcallProcessID; + // riccallprocessid_ie->buf = dinput.call_process_id; + // riccallprocessid_ie->size = dinput.call_process_id_size; + + ie_index = 2; + RICcontrolRequest_IEs_t *ies_richead = &IE_array[ie_index]; + ies_richead->criticality = Criticality_reject; + ies_richead->id = ProtocolIE_ID_id_RICcontrolHeader; + ies_richead->value.present = RICcontrolRequest_IEs__value_PR_RICcontrolHeader; + RICcontrolHeader_t *richeader_ie = &ies_richead->value.choice.RICcontrolHeader; + richeader_ie->buf = dinput.control_header; + richeader_ie->size = dinput.control_header_size; + + ie_index = 3; + RICcontrolRequest_IEs_t *ies_indmsg = &IE_array[ie_index]; + ies_indmsg->criticality = Criticality_reject; + ies_indmsg->id = ProtocolIE_ID_id_RICcontrolMessage; + ies_indmsg->value.present = RICcontrolRequest_IEs__value_PR_RICcontrolMessage; + RICcontrolMessage_t *ricmsg_ie = &ies_indmsg->value.choice.RICcontrolMessage; + ricmsg_ie->buf = dinput.control_msg; + ricmsg_ie->size = dinput.control_msg_size; + + ie_index = 4; + RICcontrolRequest_IEs_t *ies_indtyp = &IE_array[ie_index]; + ies_indtyp->criticality = Criticality_reject; + ies_indtyp->id = ProtocolIE_ID_id_RICcontrolAckRequest; + ies_indtyp->value.present = RICcontrolRequest_IEs__value_PR_RICcontrolAckRequest; + RICcontrolAckRequest_t *ricackreq_ie = &ies_indtyp->value.choice.RICcontrolAckRequest; + *ricackreq_ie = dinput.control_ack; + + return true; + +}; + + + + +bool ric_control_request:: get_fields(InitiatingMessage_t * init_msg, ric_control_helper &dout) +{ + if (init_msg == 0){ + error_string = "Invalid reference for E2AP Control_Request message in get_fields"; + return false; + } + + + for(int edx = 0; edx < init_msg->value.choice.RICcontrolRequest.protocolIEs.list.count; edx++) { + RICcontrolRequest_IEs_t *memb_ptr = init_msg->value.choice.RICcontrolRequest.protocolIEs.list.array[edx]; + + switch(memb_ptr->id) + { + case (ProtocolIE_ID_id_RICcontrolHeader): + dout.control_header = memb_ptr->value.choice.RICcontrolHeader.buf; + dout.control_header_size = memb_ptr->value.choice.RICcontrolHeader.size; + break; + + case (ProtocolIE_ID_id_RICcontrolMessage): + dout.control_msg = memb_ptr->value.choice.RICcontrolMessage.buf; + dout.control_msg_size = memb_ptr->value.choice.RICcontrolMessage.size; + break; + + case (ProtocolIE_ID_id_RICcallProcessID): + dout.call_process_id = memb_ptr->value.choice.RICcallProcessID.buf; + dout.call_process_id_size = memb_ptr->value.choice.RICcallProcessID.size; + break; + + case (ProtocolIE_ID_id_RICrequestID): + dout.req_id = memb_ptr->value.choice.RICrequestID.ricRequestorID; + dout.req_seq_no = memb_ptr->value.choice.RICrequestID.ricRequestSequenceNumber; + break; + + case (ProtocolIE_ID_id_RANfunctionID): + dout.func_id = memb_ptr->value.choice.RANfunctionID; + break; + + case (ProtocolIE_ID_id_RICcontrolAckRequest): + dout.control_ack = memb_ptr->value.choice.RICcontrolAckRequest; + break; + + + default: + break; + } + + } + + return true; + +} + +InitiatingMessage_t * ric_control_request::get_message(void) { + return initMsg; +} diff --git a/src/E2AP-c/e2ap_control.hpp b/src/E2AP-c/e2ap_control.hpp new file mode 100644 index 0000000..e50e9c2 --- /dev/null +++ b/src/E2AP-c/e2ap_control.hpp @@ -0,0 +1,66 @@ +/* +================================================================================== + + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ +/* + * ric_indication.h + * + * Created on: Jul 11, 2019 + * Author: sjana, Ashwin Sridharan + */ + +#ifndef E2AP_RIC_CONTROL_REQUEST_H_ +#define E2AP_RIC_CONTROL_REQUEST_H_ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define NUM_CONTROL_REQUEST_IES 5 + + +class ric_control_request{ + +public: + ric_control_request(void); + ~ric_control_request(void); + + bool encode_e2ap_control_request(unsigned char *, size_t *, ric_control_helper &); + InitiatingMessage_t * get_message (void) ; + bool set_fields(InitiatingMessage_t *, ric_control_helper &); + bool get_fields(InitiatingMessage_t *, ric_control_helper &); + std::string get_error(void) const {return error_string ; }; +private: + + E2AP_PDU_t * e2ap_pdu_obj; + InitiatingMessage_t *initMsg; + RICcontrolRequest_IEs_t *IE_array; + std::string error_string; + + char errbuf[128]; + size_t errbuf_len = 128; +}; + + +#endif /* E2AP_RIC_CONTROL_REQUEST_H_ */ diff --git a/src/E2AP-c/e2ap_control_helper.hpp b/src/E2AP-c/e2ap_control_helper.hpp new file mode 100644 index 0000000..2787ef9 --- /dev/null +++ b/src/E2AP-c/e2ap_control_helper.hpp @@ -0,0 +1,22 @@ +#ifndef CONTROL_HELPER_H +#define CONTROL_HELPER_H + +typedef struct ric_control_helper ric_control_helper; + +struct ric_control_helper{ + ric_control_helper(void):req_id(1), req_seq_no(1), func_id(0), action_id(1), control_ack(1), cause(0), sub_cause(0), control_status(1), control_msg(0), control_msg_size(0), control_header(0), control_header_size(0), call_process_id(0), call_process_id_size(0){}; + + long int req_id, req_seq_no, func_id, action_id, control_ack, cause, sub_cause, control_status; + + unsigned char* control_msg; + size_t control_msg_size; + + unsigned char* control_header; + size_t control_header_size; + + unsigned char *call_process_id; + size_t call_process_id_size; + +}; + +#endif diff --git a/src/E2AP-c/e2ap_control_response.cc b/src/E2AP-c/e2ap_control_response.cc new file mode 100644 index 0000000..382ebc6 --- /dev/null +++ b/src/E2AP-c/e2ap_control_response.cc @@ -0,0 +1,415 @@ +/* +================================================================================== + + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ +/* + * ric_control_response.c + * + * Created on: Jul 11, 2019 + * Author: sjana, Ashwin Sridharan + */ + +#include + +// Set up the initiating message and also allocate protocolIEs in container +// Note : this bypasses requirement to use ASN_SEQUENCE_ADD. We can directly +// assign pointers to the array in ProtocolIE. However, this also leaves us on the +// hook to manually clear the memory + +ric_control_response::ric_control_response(void){ + + e2ap_pdu_obj = 0; + e2ap_pdu_obj = (E2AP_PDU_t * )calloc(1, sizeof(E2AP_PDU_t)); + assert(e2ap_pdu_obj != 0); + + successMsg = 0; + successMsg = (SuccessfulOutcome_t * )calloc(1, sizeof(SuccessfulOutcome_t)); + assert(successMsg != 0); + + successMsg->procedureCode = ProcedureCode_id_ricControl; + successMsg->criticality = Criticality_reject; + successMsg->value.present = SuccessfulOutcome__value_PR_RICcontrolAcknowledge; + + + unsuccessMsg = 0; + unsuccessMsg = (UnsuccessfulOutcome_t * )calloc(1, sizeof(UnsuccessfulOutcome_t)); + assert(unsuccessMsg != 0); + + + unsuccessMsg->procedureCode = ProcedureCode_id_ricControl; + unsuccessMsg->criticality = Criticality_reject; + unsuccessMsg->value.present = UnsuccessfulOutcome__value_PR_RICcontrolFailure; + + IE_array = 0; + IE_array = (RICcontrolAcknowledge_IEs_t *)calloc(NUM_CONTROL_ACKNOWLEDGE_IES, sizeof(RICcontrolAcknowledge_IEs_t)); + assert(IE_array != 0); + + RICcontrolAcknowledge_t * ric_acknowledge = &(successMsg->value.choice.RICcontrolAcknowledge); + for(int i = 0; i < NUM_CONTROL_ACKNOWLEDGE_IES; i++){ + ASN_SEQUENCE_ADD(&(ric_acknowledge->protocolIEs), &(IE_array[i])); + } + + + IE_failure_array = 0; + IE_failure_array = (RICcontrolFailure_IEs_t *)calloc(NUM_CONTROL_FAILURE_IES, sizeof(RICcontrolFailure_IEs_t)); + assert(IE_failure_array != 0); + + RICcontrolFailure_t * ric_failure = &(unsuccessMsg->value.choice.RICcontrolFailure); + for(int i = 0; i < NUM_CONTROL_FAILURE_IES; i++){ + ASN_SEQUENCE_ADD(&(ric_failure->protocolIEs), &(IE_failure_array[i])); + } + +}; + + +// Clear assigned protocolIE list from RIC control_request IE container +ric_control_response::~ric_control_response(void){ + + mdclog_write(MDCLOG_INFO, "Freeing E2AP Control Response object memory"); + + RICcontrolAcknowledge_t * ric_acknowledge = &(successMsg->value.choice.RICcontrolAcknowledge); + for(int i = 0; i < ric_acknowledge->protocolIEs.list.size; i++){ + ric_acknowledge->protocolIEs.list.array[i] = 0; + } + if (ric_acknowledge->protocolIEs.list.size > 0){ + free(ric_acknowledge->protocolIEs.list.array); + ric_acknowledge->protocolIEs.list.array = 0; + ric_acknowledge->protocolIEs.list.count = 0; + } + + RICcontrolFailure_t * ric_failure = &(unsuccessMsg->value.choice.RICcontrolFailure); + for(int i = 0; i < ric_failure->protocolIEs.list.size; i++){ + ric_failure->protocolIEs.list.array[i] = 0; + } + if (ric_failure->protocolIEs.list.size > 0){ + free(ric_failure->protocolIEs.list.array); + ric_failure->protocolIEs.list.array = 0; + ric_failure->protocolIEs.list.count = 0; + } + + free(IE_array); + free(IE_failure_array); + free(successMsg); + free(unsuccessMsg); + + e2ap_pdu_obj->choice.initiatingMessage = 0; + e2ap_pdu_obj->present = E2AP_PDU_PR_initiatingMessage; + + ASN_STRUCT_FREE(asn_DEF_E2AP_PDU, e2ap_pdu_obj); + mdclog_write(MDCLOG_INFO, "Freed E2AP Control Response object mempory"); +} + + +bool ric_control_response::encode_e2ap_control_response(unsigned char *buf, size_t *size, ric_control_helper & dinput, bool is_success){ + + bool res; + if (is_success){ + res = set_fields(successMsg, dinput); + } + else{ + res = set_fields(unsuccessMsg, dinput); + } + + if (!res){ + return false; + } + + + if (is_success){ + e2ap_pdu_obj->choice.successfulOutcome = successMsg; + e2ap_pdu_obj->present = E2AP_PDU_PR_successfulOutcome ; + } + else{ + e2ap_pdu_obj->choice.unsuccessfulOutcome = unsuccessMsg; + e2ap_pdu_obj->present = E2AP_PDU_PR_unsuccessfulOutcome ; + + } + + //xer_fprint(stdout, &asn_DEF_E2AP_PDU, e2ap_pdu_obj); + + int ret_constr = asn_check_constraints(&asn_DEF_E2AP_PDU, (void *) e2ap_pdu_obj, errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(errbuf, errbuf_len); + error_string = "Constraints failed for encoding control response. Reason = " + error_string; + return false; + } + + asn_enc_rval_t retval = asn_encode_to_buffer(0, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2AP_PDU, e2ap_pdu_obj, buf, *size); + + if(retval.encoded == -1){ + error_string.assign(strerror(errno)); + return false; + } + else { + if(*size < retval.encoded){ + std::stringstream ss; + ss <<"Error encoding E2AP Control response . Reason = encoded pdu size " << retval.encoded << " exceeds buffer size " << *size << std::endl; + error_string = ss.str(); + return false; + } + } + + *size = retval.encoded; + return true; + +} + +bool ric_control_response::set_fields(SuccessfulOutcome_t *successMsg, ric_control_helper &dinput){ + unsigned int ie_index; + + if (successMsg == 0){ + error_string = "Invalid reference for E2AP Control Acknowledge in set_fields"; + return false; + } + + // for(i = 0; i < NUM_CONTROL_ACKNOWLEDGE_IES;i++){ + // memset(&(IE_array[i]), 0, sizeof(RICcontrolAcknowledge_IEs_t)); + // } + + //RICcontrolAcknowledge_t * ric_acknowledge = &(successMsg->value.choice.RICcontrolAcknowledge); + //ric_acknowledge->protocolIEs.list.count = 0; + + ie_index = 0; + RICcontrolAcknowledge_IEs_t *ies_ricreq = &IE_array[ie_index]; + ies_ricreq->criticality = Criticality_reject; + ies_ricreq->id = ProtocolIE_ID_id_RICrequestID; + ies_ricreq->value.present = RICcontrolAcknowledge_IEs__value_PR_RICrequestID; + RICrequestID_t *ricrequest_ie = &ies_ricreq->value.choice.RICrequestID; + ricrequest_ie->ricRequestorID = dinput.req_id; + ricrequest_ie->ricRequestSequenceNumber = dinput.req_seq_no; + //ASN_SEQUENCE_ADD(&(ric_acknowledge->protocolIEs), ies_ricreq); + + ie_index = 1; + RICcontrolAcknowledge_IEs_t *ies_ranfunc = &IE_array[ie_index]; + ies_ranfunc->criticality = Criticality_reject; + ies_ranfunc->id = ProtocolIE_ID_id_RANfunctionID; + ies_ranfunc->value.present = RICcontrolAcknowledge_IEs__value_PR_RANfunctionID; + RANfunctionID_t *ranfunction_ie = &ies_ranfunc->value.choice.RANfunctionID; + *ranfunction_ie = dinput.func_id; + //ASN_SEQUENCE_ADD(&(ric_acknowledge->protocolIEs), ies_ranfunc); + + // ie_index = 2; + // RICcontrolAcknowledge_IEs_t *ies_riccallprocessid = &IE_array[ie_index]; + // ies_riccallprocessid->criticality = Criticality_reject; + // ies_riccallprocessid->id = ProtocolIE_ID_id_RICcallProcessID; + // ies_riccallprocessid->value.present = RICcontrolAcknowledge_IEs__value_PR_RICcallProcessID; + // RICcallProcessID_t *riccallprocessid_ie = &ies_riccallprocessid->value.choice.RICcallProcessID; + // riccallprocessid_ie->buf = dinput.call_process_id; + // riccallprocessid_ie->size = dinput.call_process_id_size; + // ASN_SEQUENCE_ADD(&(ric_acknowledge->protocolIEs), ies_riccallprocessid); + + ie_index = 2; + RICcontrolAcknowledge_IEs_t *ies_ric_cause = &IE_array[ie_index]; + ies_ric_cause->criticality = Criticality_reject; + ies_ric_cause->id = ProtocolIE_ID_id_RICcontrolStatus; + ies_ric_cause->value.present = RICcontrolAcknowledge_IEs__value_PR_RICcontrolStatus; + ies_ric_cause->value.choice.RICcontrolStatus = dinput.control_status; + //ASN_SEQUENCE_ADD(&(ric_acknowledge->protocolIEs), ies_ric_cause); + + return true; + +}; + +bool ric_control_response::set_fields(UnsuccessfulOutcome_t *unsuccessMsg, ric_control_helper &dinput){ + unsigned int ie_index; + + if (unsuccessMsg == 0){ + error_string = "Invalid reference for E2AP Control Failure in set_fields"; + return false; + } + + // for(i = 0; i < NUM_CONTROL_FAILURE_IES;i++){ + // memset(&(IE_failure_array[i]), 0, sizeof(RICcontrolFailure_IEs_t)); + // } + + //RICcontrolFailure_t * ric_failure = &(unsuccessMsg->value.choice.RICcontrolFailure); + //ric_failure->protocolIEs.list.count = 0; + + ie_index = 0; + RICcontrolFailure_IEs_t *ies_ricreq = &IE_failure_array[ie_index]; + ies_ricreq->criticality = Criticality_reject; + ies_ricreq->id = ProtocolIE_ID_id_RICrequestID; + ies_ricreq->value.present = RICcontrolFailure_IEs__value_PR_RICrequestID; + RICrequestID_t *ricrequest_ie = &(ies_ricreq->value.choice.RICrequestID); + ricrequest_ie->ricRequestorID = dinput.req_id; + ricrequest_ie->ricRequestSequenceNumber = dinput.req_seq_no; + //ASN_SEQUENCE_ADD(&(ric_failure->protocolIEs), ies_ricreq); + + ie_index = 1; + RICcontrolFailure_IEs_t *ies_ranfunc = &IE_failure_array[ie_index]; + ies_ranfunc->criticality = Criticality_reject; + ies_ranfunc->id = ProtocolIE_ID_id_RANfunctionID; + ies_ranfunc->value.present = RICcontrolFailure_IEs__value_PR_RANfunctionID; + RANfunctionID_t *ranfunction_ie = &(ies_ranfunc->value.choice.RANfunctionID); + *ranfunction_ie = dinput.func_id; + //ASN_SEQUENCE_ADD(&(ric_failure->protocolIEs), ies_ranfunc); + + // ie_index = 2; + // RICcontrolFailure_IEs_t *ies_riccallprocessid = &IE_failure_array[i]; + // ies_riccallprocessid->criticality = Criticality_reject; + // ies_riccallprocessid->id = ProtocolIE_ID_id_RICcallProcessID; + // ies_riccallprocessid->value.present = RICcontrolFailure_IEs__value_PR_RICcallProcessID; + // RICcallProcessID_t *riccallprocessid_ie = &(ies_riccallprocessid->value.choice.RICcallProcessID); + // riccallprocessid_ie->buf = dinput.call_process_id; + // riccallprocessid_ie->size = dinput.call_process_id_size; + // ASN_SEQUENCE_ADD(&(ric_failure->protocolIEs), ies_riccallprocessid); + + ie_index = 2; + RICcontrolFailure_IEs_t *ies_ric_cause = &IE_failure_array[ie_index]; + ies_ric_cause->criticality = Criticality_ignore; + ies_ric_cause->id = ProtocolIE_ID_id_RICcause; + ies_ric_cause->value.present = RICcontrolFailure_IEs__value_PR_RICcause; + RICcause_t * ric_cause = &(ies_ric_cause->value.choice.RICcause); + ric_cause->present = (RICcause_PR)dinput.cause; + + switch(dinput.cause){ + case RICcause_PR_radioNetwork: + ric_cause->choice.radioNetwork = dinput.sub_cause; + break; + case RICcause_PR_transport: + ric_cause->choice.transport = dinput.sub_cause; + break; + case RICcause_PR_protocol: + ric_cause->choice.protocol= dinput.sub_cause; + break; + case RICcause_PR_misc: + ric_cause->choice.misc = dinput.sub_cause; + break; + case RICcause_PR_ric: + ric_cause->choice.ric = dinput.sub_cause; + break; + default: + std::cout <<"Error ! Illegal cause enum" << dinput.cause << std::endl; + return false; + } + + //ASN_SEQUENCE_ADD(&(ric_failure->protocolIEs), ies_ric_cause); + return true; + +}; + + + + +bool ric_control_response:: get_fields(SuccessfulOutcome_t * success_msg, ric_control_helper &dout) +{ + if (success_msg == 0){ + error_string = "Invalid reference for E2AP Control Acknowledge message in get_fields"; + return false; + } + + + for(int edx = 0; edx < success_msg->value.choice.RICcontrolAcknowledge.protocolIEs.list.count; edx++) { + RICcontrolAcknowledge_IEs_t *memb_ptr = success_msg->value.choice.RICcontrolAcknowledge.protocolIEs.list.array[edx]; + + switch(memb_ptr->id) + { + + case (ProtocolIE_ID_id_RICcallProcessID): + dout.call_process_id = memb_ptr->value.choice.RICcallProcessID.buf; + dout.call_process_id_size = memb_ptr->value.choice.RICcallProcessID.size; + break; + + case (ProtocolIE_ID_id_RICrequestID): + dout.req_id = memb_ptr->value.choice.RICrequestID.ricRequestorID; + dout.req_seq_no = memb_ptr->value.choice.RICrequestID.ricRequestSequenceNumber; + break; + + case (ProtocolIE_ID_id_RANfunctionID): + dout.func_id = memb_ptr->value.choice.RANfunctionID; + break; + + case (ProtocolIE_ID_id_RICcause): + dout.control_status = memb_ptr->value.choice.RICcontrolStatus; + break; + + } + + } + + return true; + +} + + +bool ric_control_response:: get_fields(UnsuccessfulOutcome_t * unsuccess_msg, ric_control_helper &dout) +{ + if (unsuccess_msg == 0){ + error_string = "Invalid reference for E2AP Control Failure message in get_fields"; + return false; + } + + + for(int edx = 0; edx < unsuccess_msg->value.choice.RICcontrolFailure.protocolIEs.list.count; edx++) { + RICcontrolFailure_IEs_t *memb_ptr = unsuccess_msg->value.choice.RICcontrolFailure.protocolIEs.list.array[edx]; + + switch(memb_ptr->id) + { + + case (ProtocolIE_ID_id_RICcallProcessID): + dout.call_process_id = memb_ptr->value.choice.RICcallProcessID.buf; + dout.call_process_id_size = memb_ptr->value.choice.RICcallProcessID.size; + break; + + case (ProtocolIE_ID_id_RICrequestID): + dout.req_id = memb_ptr->value.choice.RICrequestID.ricRequestorID; + dout.req_seq_no = memb_ptr->value.choice.RICrequestID.ricRequestSequenceNumber; + break; + + case (ProtocolIE_ID_id_RANfunctionID): + dout.func_id = memb_ptr->value.choice.RANfunctionID; + break; + + + case (ProtocolIE_ID_id_RICcause): + dout.cause = memb_ptr->value.choice.RICcause.present; + switch(dout.cause){ + case RICcause_PR_radioNetwork : + dout.sub_cause = memb_ptr->value.choice.RICcause.choice.radioNetwork; + break; + + case RICcause_PR_transport : + dout.sub_cause = memb_ptr->value.choice.RICcause.choice.transport; + break; + + case RICcause_PR_protocol : + dout.sub_cause = memb_ptr->value.choice.RICcause.choice.protocol; + break; + + case RICcause_PR_misc : + dout.sub_cause = memb_ptr->value.choice.RICcause.choice.misc; + break; + + case RICcause_PR_ric : + dout.sub_cause = memb_ptr->value.choice.RICcause.choice.ric; + break; + + default: + dout.sub_cause = -1; + break; + } + + default: + break; + } + + } + + return true; + +} + diff --git a/src/E2AP-c/e2ap_control_response.hpp b/src/E2AP-c/e2ap_control_response.hpp new file mode 100644 index 0000000..15a21be --- /dev/null +++ b/src/E2AP-c/e2ap_control_response.hpp @@ -0,0 +1,79 @@ +/* +================================================================================== + + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ +/* + * ric_indication.h + * + * Created on: Jul 11, 2019 + * Author: sjana, Ashwin Sridharan + */ + +#ifndef E2AP_RIC_CONTROL_RESPONSE_H_ +#define E2AP_RIC_CONTROL_RESPONSE_H_ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define NUM_CONTROL_ACKNOWLEDGE_IES 3 +#define NUM_CONTROL_FAILURE_IES 3 + + +class ric_control_response{ + +public: + ric_control_response(void); + ~ric_control_response(void); + + bool encode_e2ap_control_response(unsigned char *, size_t *, ric_control_helper &, bool); + + + bool set_fields(SuccessfulOutcome_t *, ric_control_helper &); + bool get_fields(SuccessfulOutcome_t *, ric_control_helper &); + + bool set_fields(UnsuccessfulOutcome_t *, ric_control_helper &); + bool get_fields(UnsuccessfulOutcome_t *, ric_control_helper &); + + std::string get_error(void) const {return error_string ; }; + +private: + + E2AP_PDU_t * e2ap_pdu_obj; + SuccessfulOutcome_t * successMsg; + UnsuccessfulOutcome_t * unsuccessMsg; + + RICcontrolAcknowledge_IEs_t *IE_array; + RICcontrolFailure_IEs_t *IE_failure_array; + + std::string error_string; + + char errbuf[128]; + size_t errbuf_len = 128; +}; + + +#endif /* E2AP_RIC_CONTROL_RESPONSE_H_ */ diff --git a/src/E2AP-c/e2ap_indication.cc b/src/E2AP-c/e2ap_indication.cc new file mode 100644 index 0000000..75abd13 --- /dev/null +++ b/src/E2AP-c/e2ap_indication.cc @@ -0,0 +1,261 @@ +/* +================================================================================== + + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ +/* + * ric_indication.c + * + * Created on: Jul 11, 2019 + * Author: sjana, Ashwin Sridharan + */ + +#include + +// Set up the initiating message and also allocate protocolIEs in container +// Note : this bypasses requirement to use ASN_SEQUENCE_ADD. We can directly +// assign pointers to the array in ProtocolIE. However, this also leaves us on the +// hook to manually clear the memory + +ric_indication::ric_indication(void){ + + e2ap_pdu_obj = 0; + e2ap_pdu_obj = (E2AP_PDU_t * )calloc(1, sizeof(E2AP_PDU_t)); + assert(e2ap_pdu_obj != 0); + + initMsg = 0; + initMsg = (InitiatingMessage_t * )calloc(1, sizeof(InitiatingMessage_t)); + assert(initMsg != 0); + + IE_array = 0; + IE_array = (RICindication_IEs_t *)calloc(NUM_INDICATION_IES, sizeof(RICindication_IEs_t)); + assert(IE_array != 0); + + e2ap_pdu_obj->present = E2AP_PDU_PR_initiatingMessage; + e2ap_pdu_obj->choice.initiatingMessage = initMsg; + + RICindication_t * ric_indication = &(initMsg->value.choice.RICindication); + for(int i = 0; i < NUM_INDICATION_IES; i++){ + ASN_SEQUENCE_ADD(&(ric_indication->protocolIEs), &(IE_array[i])); + } + + + +}; + + + +// Clear assigned protocolIE list from RIC indication IE container +ric_indication::~ric_indication(void){ + + mdclog_write(MDCLOG_INFO, "Freeing E2AP Indication object memory"); + RICindication_t *ricIndication = &(initMsg->value.choice.RICindication); + for(int i = 0; i < ricIndication->protocolIEs.list.size; i++){ + ricIndication->protocolIEs.list.array[i] = 0; + } + if (ricIndication->protocolIEs.list.size > 0){ + free(ricIndication->protocolIEs.list.array); + ricIndication->protocolIEs.list.array = 0; + ricIndication->protocolIEs.list.count = 0; + ricIndication->protocolIEs.list.size = 0; + } + + free(IE_array); + ASN_STRUCT_FREE(asn_DEF_E2AP_PDU, e2ap_pdu_obj); + mdclog_write(MDCLOG_INFO, "Freed E2AP Indication object mempory"); +} + + +bool ric_indication::encode_e2ap_indication(unsigned char *buf, size_t *size, E2APRicIndication & dinput){ + + initMsg->procedureCode = ProcedureCode_id_ricIndication; + initMsg->criticality = Criticality_ignore; + initMsg->value.present = InitiatingMessage__value_PR_RICindication; + + bool res; + res = set_fields(initMsg, dinput); + if (!res){ + return false; + } + + int ret_constr = asn_check_constraints(&asn_DEF_E2AP_PDU, e2ap_pdu_obj, errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(&errbuf[0], errbuf_len); + error_string = "Error encoding E2AP Indication message. Reason = " + error_string; + return false; + } + + //xer_fprint(stdout, &asn_DEF_E2AP_PDU, e2ap_pdu_obj); + + asn_enc_rval_t retval = asn_encode_to_buffer(0, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2AP_PDU, e2ap_pdu_obj, buf, *size); + + if(retval.encoded == -1){ + error_string.assign(strerror(errno)); + return false; + } + + else { + if(*size < retval.encoded){ + std::stringstream ss; + ss <<"Error encoding event trigger definition. Reason = encoded pdu size " << retval.encoded << " exceeds buffer size " << *size << std::endl; + error_string = ss.str(); + return false; + } + } + + *size = retval.encoded; + return true; + +} + +bool ric_indication::set_fields(InitiatingMessage_t *initMsg, E2APRicIndication &dinput){ + unsigned int i; + + if (initMsg == 0){ + error_string = "Invalid reference for E2AP Indication message in set_fields"; + return false; + } + + for(i = 0; i < NUM_INDICATION_IES;i++){ + memset(&(IE_array[i]), 0, sizeof(RICindication_IEs_t)); + } + + + i = 0; + RICindication_IEs_t *ies_ricreq = &IE_array[i]; + + ies_ricreq->criticality = Criticality_reject; + ies_ricreq->id = ProtocolIE_ID_id_RICrequestID; + ies_ricreq->value.present = RICindication_IEs__value_PR_RICrequestID; + RICrequestID_t *ricrequest_ie = &ies_ricreq->value.choice.RICrequestID; + ricrequest_ie->ricRequestorID = dinput.req_id; + ricrequest_ie->ricRequestSequenceNumber = dinput.req_seq_no; + + i = 1; + RICindication_IEs_t *ies_ranfunc = &IE_array[i]; + ies_ranfunc->criticality = Criticality_reject; + ies_ranfunc->id = ProtocolIE_ID_id_RANfunctionID; + ies_ranfunc->value.present = RICindication_IEs__value_PR_RANfunctionID; + RANfunctionID_t *ranfunction_ie = &ies_ranfunc->value.choice.RANfunctionID; + *ranfunction_ie = dinput.func_id; + + i = 2; + RICindication_IEs_t *ies_actid = &IE_array[i]; + ies_actid->criticality = Criticality_reject; + ies_actid->id = ProtocolIE_ID_id_RICactionID; + ies_actid->value.present = RICindication_IEs__value_PR_RICactionID; + RICactionID_t *ricaction_ie = &ies_actid->value.choice.RICactionID; + *ricaction_ie = dinput.action_id; + + i = 3; + RICindication_IEs_t *ies_ricsn = &IE_array[i]; + ies_ricsn->criticality = Criticality_reject; + ies_ricsn->id = ProtocolIE_ID_id_RICindicationSN; + ies_ricsn->value.present = RICindication_IEs__value_PR_RICindicationSN; + RICindicationSN_t *ricsn_ie = &ies_ricsn->value.choice.RICindicationSN; + *ricsn_ie = dinput.indication_sn; + + + i = 4; + RICindication_IEs_t *ies_indtyp = &IE_array[i]; + ies_indtyp->criticality = Criticality_reject; + ies_indtyp->id = ProtocolIE_ID_id_RICindicationType; + ies_indtyp->value.present = RICindication_IEs__value_PR_RICindicationType; + RICindicationType_t *rictype_ie = &ies_indtyp->value.choice.RICindicationType; + *rictype_ie = dinput.indication_type; + + i = 5; + RICindication_IEs_t *ies_richead = &IE_array[i]; + ies_richead->criticality = Criticality_reject; + ies_richead->id = ProtocolIE_ID_id_RICindicationHeader; + ies_richead->value.present = RICindication_IEs__value_PR_RICindicationHeader; + RICindicationHeader_t *richeader_ie = &ies_richead->value.choice.RICindicationHeader; + richeader_ie->buf = dinput.indication_header; + richeader_ie->size = dinput.indication_header_size; + + i = 6; + RICindication_IEs_t *ies_indmsg = &IE_array[i]; + ies_indmsg->criticality = Criticality_reject; + ies_indmsg->id = ProtocolIE_ID_id_RICindicationMessage; + ies_indmsg->value.present = RICindication_IEs__value_PR_RICindicationMessage; + RICindicationMessage_t *ricmsg_ie = &ies_indmsg->value.choice.RICindicationMessage; + ricmsg_ie->buf = dinput.indication_msg; + ricmsg_ie->size = dinput.indication_msg_size; + + return true; + +}; + + + + +bool ric_indication:: get_fields(InitiatingMessage_t * init_msg, E2APRicIndication &dout) +{ + if (init_msg == 0){ + error_string = "Invalid reference for E2AP Indication message in get_fields"; + return false; + } + + + for(int edx = 0; edx < init_msg->value.choice.RICindication.protocolIEs.list.count; edx++) { + RICindication_IEs_t *memb_ptr = init_msg->value.choice.RICindication.protocolIEs.list.array[edx]; + + switch(memb_ptr->id) + { + case (ProtocolIE_ID_id_RICindicationHeader): + dout.indication_header = memb_ptr->value.choice.RICindicationHeader.buf; + dout.indication_header_size = memb_ptr->value.choice.RICindicationHeader.size; + break; + + case (ProtocolIE_ID_id_RICindicationMessage): + dout.indication_msg = memb_ptr->value.choice.RICindicationMessage.buf; + dout.indication_msg_size = memb_ptr->value.choice.RICindicationMessage.size; + break; + + case (ProtocolIE_ID_id_RICrequestID): + dout.req_id = memb_ptr->value.choice.RICrequestID.ricRequestorID; + dout.req_seq_no = memb_ptr->value.choice.RICrequestID.ricRequestSequenceNumber; + break; + + case (ProtocolIE_ID_id_RANfunctionID): + dout.func_id = memb_ptr->value.choice.RANfunctionID; + break; + + case (ProtocolIE_ID_id_RICindicationSN): + dout.indication_sn = memb_ptr->value.choice.RICindicationSN; + break; + + case (ProtocolIE_ID_id_RICindicationType): + dout.indication_type = memb_ptr->value.choice.RICindicationType; + break; + + case (ProtocolIE_ID_id_RICactionID): + dout.action_id = memb_ptr->value.choice.RICactionID; + break; + + default: + break; + } + + } + + return true; + +} + +InitiatingMessage_t * ric_indication::get_message(void) { + return initMsg; +} diff --git a/src/E2AP-c/e2ap_indication.hpp b/src/E2AP-c/e2ap_indication.hpp new file mode 100644 index 0000000..189243e --- /dev/null +++ b/src/E2AP-c/e2ap_indication.hpp @@ -0,0 +1,81 @@ +/* +================================================================================== + + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ +/* + * ric_indication.h + * + * Created on: Jul 11, 2019 + * Author: sjana, Ashwin Sridharan + */ + +#ifndef E2AP_RIC_INDICATION_H_ +#define E2AP_RIC_INDICATION_H_ + + +#include +#include +#include +#include +#include +#include +#include +#include + +#define NUM_INDICATION_IES 7 + + typedef struct E2APRicIndication E2APRicIndication; + + struct E2APRicIndication{ + E2APRicIndication(void) : req_id(1), req_seq_no(1), func_id(0), action_id(1), indication_type(0), indication_sn(0), indication_msg(0), indication_msg_size(0), indication_header(0), indication_header_size(0), call_process_id(0), call_process_id_size(0) {}; + long int req_id, req_seq_no, func_id, action_id, indication_type, indication_sn; + + unsigned char* indication_msg; + size_t indication_msg_size; + + unsigned char* indication_header; + size_t indication_header_size; + + unsigned char *call_process_id; + size_t call_process_id_size; + + }; + + + class ric_indication{ + + public: + ric_indication(void); + ~ric_indication(void); + + bool encode_e2ap_indication(unsigned char *, size_t *, E2APRicIndication &); + InitiatingMessage_t * get_message (void) ; + bool set_fields(InitiatingMessage_t *, E2APRicIndication &); + bool get_fields(InitiatingMessage_t *, E2APRicIndication &); + std::string get_error(void) const {return error_string ; }; + private: + + E2AP_PDU_t * e2ap_pdu_obj; + InitiatingMessage_t *initMsg; + RICindication_IEs_t *IE_array; + std::string error_string; + char errbuf[128]; + size_t errbuf_len = 128; + }; + + +#endif /* E2AP_RIC_INDICATION_H_ */ diff --git a/src/E2AP-c/subscription/generic_helpers.hpp b/src/E2AP-c/subscription/generic_helpers.hpp new file mode 100644 index 0000000..32c019a --- /dev/null +++ b/src/E2AP-c/subscription/generic_helpers.hpp @@ -0,0 +1,49 @@ +/* +================================================================================== + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ + + +#pragma once +#ifndef GENERIC_HELPERS +#define GENERIC_HELPERS + +#include + +/* Utilities */ + +class octet_helper { + +public: + octet_helper(void):_ref(NULL), _size(0){}; + octet_helper(const void *ref, int size):_ref(ref), _size(size){}; + void set_ref(const void *ref){ + _ref = ref; + } + + void set_size(size_t size){ + _size = size; + } + + const void * get_ref(void){return _ref ; }; + size_t get_size(void) const {return _size ; } ; + +private: + const void *_ref; + size_t _size; +}; + +#endif diff --git a/src/E2AP-c/subscription/response_helper.hpp b/src/E2AP-c/subscription/response_helper.hpp new file mode 100644 index 0000000..62df7e5 --- /dev/null +++ b/src/E2AP-c/subscription/response_helper.hpp @@ -0,0 +1,181 @@ +/* +================================================================================== + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ + +#pragma once + +#ifndef S_RESPONSE_HELPER_ +#define S_RESPONSE_HELPER_ + +#include +#include + +/* Simple structure to store action for RICaction of the Subscription response based on E2 v0.22 */ +struct ActionResponse { +public: + ActionResponse(int id): _is_admit(true), _id(id), _cause(-1), _sub_cause(-1){}; + ActionResponse(int id, int cause, int sub_cause): _is_admit(false), _id(id), _cause(cause), _sub_cause(sub_cause){}; + + int get_id() const{ + return _id; + }; + + int get_cause() const{ + return _cause; + }; + + int get_sub_cause() const{ + return _sub_cause; + }; + + bool is_admitted(void){ + return _is_admit; + }; + +private: + + bool _is_admit; + int _id, _cause, _sub_cause; + +}; + + +struct subscription_response_helper { + +public: + + using action_t = std::vector; + + subscription_response_helper(void){ + _action_admitted_ref = std::make_unique(); + _action_not_admitted_ref = std::make_unique(); + + }; + + // copy operator + subscription_response_helper(const subscription_response_helper &he ){ + _action_admitted_ref = std::make_unique(); + _action_not_admitted_ref = std::make_unique(); + + _req_id = he.get_request_id(); + _req_seq_no = he.get_req_seq(); + _func_id = he.get_function_id(); + + // Take care of the actions + for (auto const & e: *(he.get_admitted_list())){ + add_action(e.get_id()); + } + + for(auto const & e: *(he.get_not_admitted_list())){ + add_action(e.get_id(), e.get_cause(), e.get_sub_cause()); + }; + } + + + // assignment operator + void operator=(const subscription_response_helper & he){ + _action_admitted_ref = std::make_unique(); + _action_not_admitted_ref = std::make_unique(); + + _req_id = he.get_request_id(); + _req_seq_no = he.get_req_seq(); + _func_id = he.get_function_id(); + + + // Take care of the actions + for (auto const & e: *(he.get_admitted_list())){ + add_action(e.get_id()); + } + + for(auto const & e: *(he.get_not_admitted_list())){ + add_action(e.get_id(), e.get_cause(), e.get_sub_cause()); + }; + + } + + action_t * get_admitted_list (void ) const {return _action_admitted_ref.get();}; + action_t * get_not_admitted_list (void ) const{return _action_not_admitted_ref.get();}; + + void set_request(int id, int seq_no){ + _req_id = id; + _req_seq_no = seq_no; + + }; + + void clear(void){ + _action_admitted_ref.get()->clear(); + _action_not_admitted_ref.get()->clear(); + } + + + void set_function_id(int id){ + _func_id = id; + }; + + void add_action(int id){ + ActionResponse a(id) ; + _action_admitted_ref.get()->push_back(a); + }; + + void add_action(int id, int cause, int sub_cause){ + ActionResponse a (id, cause, sub_cause); + _action_not_admitted_ref.get()->push_back(a); + }; + + + int get_request_id(void) const{ + return _req_id; + } + + int get_req_seq(void) const{ + return _req_seq_no; + } + + int get_function_id(void) const{ + return _func_id; + } + + std::string to_string(void){ + std::string Info; + Info += "Request ID = " + std::to_string(_req_id) + "\n"; + Info += "Request Sequence No = " + std::to_string(_req_seq_no) + "\n"; + Info += "RAN Function ID = " + std::to_string(_func_id) + "\n"; + Info += "Actions Admitted =\n"; + int i = 0; + for(auto & e: *(_action_admitted_ref)){ + Info += std::to_string(i) + ": ID=" + std::to_string(e.get_id()) + "\n"; + i++; + } + Info += "Actions Not Admitted =\n"; + i = 0; + for(auto & e: *(_action_not_admitted_ref)){ + Info += std::to_string(i) + ": ID=" + std::to_string(e.get_id()) + ": Cause =" + std::to_string(e.get_cause()) + ": Sub-Cause=" + std::to_string(e.get_sub_cause()) + "\n"; + i++; + } + + return Info; + } + +private: + int _req_id, _req_seq_no, _func_id; + std::unique_ptr _action_admitted_ref; + std::unique_ptr _action_not_admitted_ref; + +}; + + +#endif diff --git a/src/E2AP-c/subscription/subscription_delete_request.cc b/src/E2AP-c/subscription/subscription_delete_request.cc new file mode 100644 index 0000000..2f6d5c5 --- /dev/null +++ b/src/E2AP-c/subscription/subscription_delete_request.cc @@ -0,0 +1,186 @@ + + +/* +================================================================================== + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ + + +#include "subscription_delete_request.hpp" + +subscription_delete::subscription_delete(void){ + + _name = "default"; + + e2ap_pdu_obj = (E2AP_PDU_t * )calloc(1, sizeof(E2AP_PDU_t)); + assert(e2ap_pdu_obj != 0); + + initMsg = (InitiatingMessage_t * )calloc(1, sizeof(InitiatingMessage_t)); + assert(initMsg != 0); + + IE_array = (RICsubscriptionDeleteRequest_IEs_t *)calloc(NUM_SUBSCRIPTION_DELETE_IES, sizeof(RICsubscriptionDeleteRequest_IEs_t)); + assert(IE_array != 0); + + +}; + + + +// Clear assigned protocolIE list from RIC indication IE container +subscription_delete::~subscription_delete(void){ + + mdclog_write(MDCLOG_INFO, "Freeing subscription delete request object memory"); + RICsubscriptionDeleteRequest_t * subscription_delete = &(initMsg->value.choice.RICsubscriptionDeleteRequest); + + for(int i = 0; i < subscription_delete->protocolIEs.list.size; i++){ + subscription_delete->protocolIEs.list.array[i] = 0; + } + + if (subscription_delete->protocolIEs.list.size > 0){ + free(subscription_delete->protocolIEs.list.array); + subscription_delete->protocolIEs.list.count = 0; + subscription_delete->protocolIEs.list.size = 0; + subscription_delete->protocolIEs.list.array = 0; + } + + free(IE_array); + free(initMsg); + e2ap_pdu_obj->choice.initiatingMessage = 0; + + ASN_STRUCT_FREE(asn_DEF_E2AP_PDU, e2ap_pdu_obj); + mdclog_write(MDCLOG_INFO, "Freed subscription delete request object memory"); + + +}; + + +bool subscription_delete::encode_e2ap_subscription(unsigned char *buf, size_t *size, subscription_helper &dinput){ + + e2ap_pdu_obj->choice.initiatingMessage = initMsg; + e2ap_pdu_obj->present = E2AP_PDU_PR_initiatingMessage; + set_fields(e2ap_pdu_obj->choice.initiatingMessage, dinput); + + //xer_fprint(stdout, &asn_DEF_E2AP_PDU, e2ap_pdu_obj); + + int ret_constr = asn_check_constraints(&asn_DEF_E2AP_PDU, (void *) e2ap_pdu_obj, errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(errbuf, errbuf_len); + error_string = "Constraints failed for encoding subscription delete request. Reason = " + error_string; + return false; + } + + asn_enc_rval_t res = asn_encode_to_buffer(0, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2AP_PDU, e2ap_pdu_obj, buf, *size); + + if(res.encoded == -1){ + error_string.assign(strerror(errno)); + error_string = "Error encoding Subscription Delete Request. Reason = " + error_string; + return false; + } + else { + if(*size < res.encoded){ + std::stringstream ss; + ss <<"Error encoding Subscription Delete Request . Reason = encoded pdu size " << res.encoded << " exceeds buffer size " << *size << std::endl; + error_string = ss.str(); + res.encoded = -1; + return false; + } + } + + *size = res.encoded; + return true; + +} + + +bool subscription_delete::set_fields(InitiatingMessage_t *ref_initMsg, subscription_helper &helper){ + unsigned int ie_index; + + if (ref_initMsg == 0){ + error_string = "Invalid reference for initating message "; + return false; + } + + ref_initMsg->procedureCode = ProcedureCode_id_ricSubscriptionDelete; + ref_initMsg->criticality = Criticality_reject; + ref_initMsg->value.present = InitiatingMessage__value_PR_RICsubscriptionDeleteRequest; + + RICsubscriptionDeleteRequest_t * subscription_delete = &(ref_initMsg->value.choice.RICsubscriptionDeleteRequest); + + // Reset field count for protocolIEs + subscription_delete->protocolIEs.list.count = 0; + + ie_index = 0; + RICsubscriptionDeleteRequest_IEs_t *ies_ricreq = &IE_array[ie_index]; + ies_ricreq->criticality = Criticality_reject; + ies_ricreq->id = ProtocolIE_ID_id_RICrequestID; + ies_ricreq->value.present = RICsubscriptionDeleteRequest_IEs__value_PR_RICrequestID; + RICrequestID_t *ricrequest_ie = &ies_ricreq->value.choice.RICrequestID; + ricrequest_ie->ricRequestorID = helper.get_request_id(); + ricrequest_ie->ricRequestSequenceNumber = helper.get_req_seq(); + + ASN_SEQUENCE_ADD(&subscription_delete->protocolIEs, ies_ricreq); + + ie_index = 1; + RICsubscriptionDeleteRequest_IEs_t *ies_ranfunc = &IE_array[ie_index]; + ies_ranfunc->criticality = Criticality_reject; + ies_ranfunc->id = ProtocolIE_ID_id_RANfunctionID; + ies_ranfunc->value.present = RICsubscriptionDeleteRequest_IEs__value_PR_RANfunctionID; + RANfunctionID_t *ranfunction_ie = &ies_ranfunc->value.choice.RANfunctionID; + *ranfunction_ie = helper.get_function_id(); + ASN_SEQUENCE_ADD(&subscription_delete->protocolIEs, ies_ranfunc); + + return true; +}; + + + + +bool subscription_delete:: get_fields(InitiatingMessage_t * init_msg, subscription_helper & dout) +{ + + if (init_msg == 0){ + error_string = "Invalid reference for initiating message for get string"; + return false; + } + + RICrequestID_t *requestid; + RANfunctionID_t * ranfunctionid; + + for(int edx = 0; edx < init_msg->value.choice.RICsubscriptionDeleteRequest.protocolIEs.list.count; edx++) { + RICsubscriptionDeleteRequest_IEs_t *memb_ptr = init_msg->value.choice.RICsubscriptionDeleteRequest.protocolIEs.list.array[edx]; + + switch(memb_ptr->id) + { + case (ProtocolIE_ID_id_RICrequestID): + requestid = &memb_ptr->value.choice.RICrequestID; + dout.set_request(requestid->ricRequestorID, requestid->ricRequestSequenceNumber); + break; + + case (ProtocolIE_ID_id_RANfunctionID): + ranfunctionid = &memb_ptr->value.choice.RANfunctionID; + dout.set_function_id(*ranfunctionid); + break; + + } + + //asn_fprint(stdout, &asn_DEF_E2AP_PDU, e2pdu); + } + + return true; +} + + + diff --git a/src/E2AP-c/subscription/subscription_delete_request.hpp b/src/E2AP-c/subscription/subscription_delete_request.hpp new file mode 100644 index 0000000..f370721 --- /dev/null +++ b/src/E2AP-c/subscription/subscription_delete_request.hpp @@ -0,0 +1,67 @@ +/* +================================================================================== + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ + +#pragma once + +#ifndef S_DELETE_ +#define S_DELETE_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define NUM_SUBSCRIPTION_DELETE_IES 2 + +class subscription_delete{ +public: + + subscription_delete(void); + ~subscription_delete(void); + + bool encode_e2ap_subscription(unsigned char *, size_t *, subscription_helper &); + bool set_fields(InitiatingMessage_t *, subscription_helper &); + bool get_fields(InitiatingMessage_t *, subscription_helper &); + + std::string get_error(void) const { + return error_string ; + } + +private: + + InitiatingMessage_t *initMsg; + E2AP_PDU_t * e2ap_pdu_obj; + + RICsubscriptionDeleteRequest_IEs_t * IE_array; + + + char errbuf[128]; + size_t errbuf_len = 128; + std::string _name; + std::string error_string; +}; + + + +#endif diff --git a/src/E2AP-c/subscription/subscription_delete_response.cc b/src/E2AP-c/subscription/subscription_delete_response.cc new file mode 100644 index 0000000..e810e9e --- /dev/null +++ b/src/E2AP-c/subscription/subscription_delete_response.cc @@ -0,0 +1,294 @@ + + +/* +================================================================================== + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ + + +#include "subscription_delete_response.hpp" + +/* The xAPP need only worry about the get_fields from a response, since it does +not generate a response. Generating response however is included to support testing. +*/ + + +// Primarly for generation +subscription_delete_response::subscription_delete_response(void){ + + e2ap_pdu_obj = 0; + e2ap_pdu_obj = (E2AP_PDU_t *)calloc(1, sizeof(E2AP_PDU_t)); + assert(e2ap_pdu_obj != 0); + + successMsg = 0; + successMsg = (SuccessfulOutcome_t *)calloc(1, sizeof(SuccessfulOutcome_t)); + assert(successMsg != 0); + + unsuccessMsg = 0; + unsuccessMsg = (UnsuccessfulOutcome_t *)calloc(1, sizeof(UnsuccessfulOutcome_t)); + assert(unsuccessMsg != 0); + + IE_array = 0; + IE_array = (RICsubscriptionDeleteResponse_IEs_t *)calloc(NUM_SUBSCRIPTION_DELETE_RESPONSE_IES, sizeof(RICsubscriptionDeleteResponse_IEs_t)); + assert(IE_array != 0); + + IE_Failure_array = 0; + IE_Failure_array = (RICsubscriptionDeleteFailure_IEs_t *)calloc(NUM_SUBSCRIPTION_DELETE_FAILURE_IES, sizeof(RICsubscriptionDeleteFailure_IEs_t)); + assert(IE_Failure_array != 0); + + + +}; + + + +// Clear assigned protocolIE list from RIC indication IE container +subscription_delete_response::~subscription_delete_response(void){ + + mdclog_write(MDCLOG_INFO, "Freeing subscription delete response memory"); + RICsubscriptionDeleteResponse_t * ric_subscription_delete_response = &(successMsg->value.choice.RICsubscriptionDeleteResponse); + + for(unsigned int i = 0; i < ric_subscription_delete_response->protocolIEs.list.size ; i++){ + ric_subscription_delete_response->protocolIEs.list.array[i] = 0; + } + + + RICsubscriptionDeleteFailure_t * ric_subscription_failure = &(unsuccessMsg->value.choice.RICsubscriptionDeleteFailure); + for(unsigned int i = 0; i < ric_subscription_failure->protocolIEs.list.size; i++){ + ric_subscription_failure->protocolIEs.list.array[i] = 0; + } + + free(IE_array); + free(IE_Failure_array); + + ASN_STRUCT_FREE(asn_DEF_SuccessfulOutcome, successMsg); + + ASN_STRUCT_FREE(asn_DEF_UnsuccessfulOutcome, unsuccessMsg); + + e2ap_pdu_obj->choice.successfulOutcome = NULL; + e2ap_pdu_obj->choice.unsuccessfulOutcome = NULL; + + ASN_STRUCT_FREE(asn_DEF_E2AP_PDU, e2ap_pdu_obj); + mdclog_write(MDCLOG_INFO, "Freed subscription delete response memory"); + +}; + + +bool subscription_delete_response::encode_e2ap_subscription_delete_response(unsigned char *buf, size_t *size, E2AP_PDU_t *e2ap_pdu, subscription_response_helper &dinput, bool is_success){ + + bool res; + + if(is_success){ + res = set_fields(successMsg, dinput); + if (!res){ + return false; + } + e2ap_pdu_obj->present = E2AP_PDU_PR_successfulOutcome; + e2ap_pdu_obj->choice.successfulOutcome = successMsg; + } + else{ + res = set_fields(unsuccessMsg, dinput); + if(! res){ + return false; + } + e2ap_pdu_obj->present = E2AP_PDU_PR_unsuccessfulOutcome; + e2ap_pdu_obj->choice.unsuccessfulOutcome = unsuccessMsg; + } + + + int ret_constr = asn_check_constraints(&asn_DEF_E2AP_PDU, (void *) e2ap_pdu_obj, errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(errbuf, errbuf_len); + return false; + } + + xer_fprint(stdout, &asn_DEF_E2AP_PDU, e2ap_pdu_obj); + + asn_enc_rval_t retval = asn_encode_to_buffer(0, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2AP_PDU, e2ap_pdu_obj, buf, *size); + + if(retval.encoded == -1){ + error_string.assign(strerror(errno)); + error_string = "Error encoding subcription delete response. Reason = " + error_string; + return false; + } + else { + if(*size < retval.encoded){ + std::stringstream ss; + ss <<"Error encoding Subscription Delete Response . Reason = encoded pdu size " << retval.encoded << " exceeds buffer size " << *size << std::endl; + error_string = ss.str(); + retval.encoded = -1; + return false; + } + } + + *size = retval.encoded; + return true; + +} + +bool subscription_delete_response::set_fields(SuccessfulOutcome_t *success, subscription_response_helper &helper){ + + if (success == 0){ + error_string = "Invalid reference to success message in set fields subscription delete response"; + return false; + } + + unsigned int ie_index; + + success->procedureCode = ProcedureCode_id_ricSubscriptionDelete; + success->criticality = Criticality_reject; + success->value.present = SuccessfulOutcome__value_PR_RICsubscriptionDeleteResponse; + + RICsubscriptionDeleteResponse_t * subscription_delete_response = &(success->value.choice.RICsubscriptionDeleteResponse); + subscription_delete_response->protocolIEs.list.count = 0; + + ie_index = 0; + RICsubscriptionDeleteResponse_IEs_t *ies_ricreq = &IE_array[ie_index]; + + ies_ricreq->criticality = Criticality_reject; + ies_ricreq->id = ProtocolIE_ID_id_RICrequestID; + ies_ricreq->value.present = RICsubscriptionDeleteResponse_IEs__value_PR_RICrequestID; + RICrequestID_t *ricrequest_ie = &ies_ricreq->value.choice.RICrequestID; + ricrequest_ie->ricRequestorID = helper.get_request_id(); + ricrequest_ie->ricRequestSequenceNumber = helper.get_req_seq(); + ASN_SEQUENCE_ADD(&subscription_delete_response->protocolIEs, ies_ricreq); + + + ie_index = 1; + RICsubscriptionDeleteResponse_IEs_t *ies_ranfunc = &IE_array[ie_index]; + ies_ranfunc->criticality = Criticality_reject; + ies_ranfunc->id = ProtocolIE_ID_id_RANfunctionID; + ies_ranfunc->value.present = RICsubscriptionDeleteResponse_IEs__value_PR_RANfunctionID; + RANfunctionID_t *ranfunction_ie = &ies_ranfunc->value.choice.RANfunctionID; + *ranfunction_ie = helper.get_function_id(); + ASN_SEQUENCE_ADD(&subscription_delete_response->protocolIEs, ies_ranfunc); + + return true; + + +} + +bool subscription_delete_response:: get_fields(SuccessfulOutcome_t * success_msg, subscription_response_helper & dout) +{ + + if (success_msg == 0){ + error_string = "Invalid reference to success message inn get fields subscription delete response"; + return false; + } + + RICrequestID_t *requestid; + RANfunctionID_t * ranfunctionid; + + for(int edx = 0; edx < success_msg->value.choice.RICsubscriptionDeleteResponse.protocolIEs.list.count; edx++) { + RICsubscriptionDeleteResponse_IEs_t *memb_ptr = success_msg->value.choice.RICsubscriptionDeleteResponse.protocolIEs.list.array[edx]; + + switch(memb_ptr->id) + { + case (ProtocolIE_ID_id_RICrequestID): + requestid = &memb_ptr->value.choice.RICrequestID; + dout.set_request(requestid->ricRequestorID, requestid->ricRequestSequenceNumber); + break; + + case (ProtocolIE_ID_id_RANfunctionID): + ranfunctionid = &memb_ptr->value.choice.RANfunctionID; + dout.set_function_id(*ranfunctionid); + break; + } + + } + + return true; + //asn_fprint(stdout, &asn_DEF_E2AP_PDU, e2pdu); +} + + +bool subscription_delete_response::set_fields(UnsuccessfulOutcome_t *unsuccess, subscription_response_helper &helper){ + + if (unsuccess == 0){ + error_string = "Invalid reference to unsuccess message in set fields subscription delete response"; + return false; + } + + unsigned int ie_index; + + unsuccess->procedureCode = ProcedureCode_id_ricSubscription; + unsuccess->criticality = Criticality_reject; + unsuccess->value.present = UnsuccessfulOutcome__value_PR_RICsubscriptionDeleteFailure; + + RICsubscriptionDeleteFailure_t * ric_subscription_failure = &(unsuccess->value.choice.RICsubscriptionDeleteFailure); + ric_subscription_failure->protocolIEs.list.count = 0; + + ie_index = 0; + RICsubscriptionDeleteFailure_IEs_t *ies_ricreq = &IE_Failure_array[ie_index]; + + ies_ricreq->criticality = Criticality_reject; + ies_ricreq->id = ProtocolIE_ID_id_RICrequestID; + ies_ricreq->value.present = RICsubscriptionDeleteFailure_IEs__value_PR_RICrequestID; + RICrequestID_t *ricrequest_ie = &ies_ricreq->value.choice.RICrequestID; + ricrequest_ie->ricRequestorID = helper.get_request_id(); + ricrequest_ie->ricRequestSequenceNumber = helper.get_req_seq(); + ASN_SEQUENCE_ADD(&ric_subscription_failure->protocolIEs, ies_ricreq); + + ie_index = 1; + RICsubscriptionDeleteFailure_IEs_t *ies_ranfunc = &IE_Failure_array[ie_index]; + ies_ranfunc->criticality = Criticality_reject; + ies_ranfunc->id = ProtocolIE_ID_id_RANfunctionID; + ies_ranfunc->value.present = RICsubscriptionDeleteFailure_IEs__value_PR_RANfunctionID; + RANfunctionID_t *ranfunction_ie = &ies_ranfunc->value.choice.RANfunctionID; + *ranfunction_ie = helper.get_function_id(); + ASN_SEQUENCE_ADD(&ric_subscription_failure->protocolIEs, ies_ranfunc); + + + return true; + +} + +bool subscription_delete_response:: get_fields(UnsuccessfulOutcome_t * unsuccess_msg, subscription_response_helper & dout) +{ + + if (unsuccess_msg == 0){ + error_string = "Invalid reference to unsuccess message in get fields subscription delete response"; + return false; + } + + RICrequestID_t *requestid; + RANfunctionID_t * ranfunctionid; + + for(int edx = 0; edx < unsuccess_msg->value.choice.RICsubscriptionDeleteFailure.protocolIEs.list.count; edx++) { + RICsubscriptionDeleteFailure_IEs_t *memb_ptr = unsuccess_msg->value.choice.RICsubscriptionDeleteFailure.protocolIEs.list.array[edx]; + + switch(memb_ptr->id) + { + case (ProtocolIE_ID_id_RICrequestID): + requestid = &memb_ptr->value.choice.RICrequestID; + dout.set_request(requestid->ricRequestorID, requestid->ricRequestSequenceNumber); + break; + + case (ProtocolIE_ID_id_RANfunctionID): + ranfunctionid = &memb_ptr->value.choice.RANfunctionID; + dout.set_function_id(*ranfunctionid); + break; + + } + + } + + return true; + //asn_fprint(stdout, &asn_DEF_E2AP_PDU, e2pdu); +} + + + diff --git a/src/E2AP-c/subscription/subscription_delete_response.hpp b/src/E2AP-c/subscription/subscription_delete_response.hpp new file mode 100644 index 0000000..8fc9228 --- /dev/null +++ b/src/E2AP-c/subscription/subscription_delete_response.hpp @@ -0,0 +1,79 @@ +/* +================================================================================== + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ + +#pragma once + +#ifndef S_DEL_RESPONSE_ +#define S_DEL_RESPONSE_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define NUM_SUBSCRIPTION_DELETE_RESPONSE_IES 2 +#define NUM_SUBSCRIPTION_DELETE_FAILURE_IES 2 + +class subscription_delete_response { +public: + + subscription_delete_response(void); + ~subscription_delete_response(void); + + bool encode_e2ap_subscription_delete_response(unsigned char *, size_t *, E2AP_PDU_t *, subscription_response_helper &, bool); + bool set_fields(SuccessfulOutcome_t *, subscription_response_helper &); + bool get_fields(SuccessfulOutcome_t *, subscription_response_helper &); + + bool set_fields(UnsuccessfulOutcome_t *, subscription_response_helper &); + bool get_fields(UnsuccessfulOutcome_t *, subscription_response_helper &); + + std::string get_error_string(void) const { + return error_string; + } + +private: + + E2AP_PDU_t * e2ap_pdu_obj; + SuccessfulOutcome_t * successMsg; + UnsuccessfulOutcome_t * unsuccessMsg; + + + RICsubscriptionDeleteResponse_IEs_t *IE_array; + RICsubscriptionDeleteFailure_IEs_t *IE_Failure_array; + + + char errbuf[128]; + size_t errbuf_len = 128; + std::string error_string; + +}; + + + + +#endif diff --git a/src/E2AP-c/subscription/subscription_handler.cc b/src/E2AP-c/subscription/subscription_handler.cc new file mode 100644 index 0000000..8b93f2a --- /dev/null +++ b/src/E2AP-c/subscription/subscription_handler.cc @@ -0,0 +1,374 @@ +/* +================================================================================== + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ + +/* Author : Ashwin Sridharan + Date : Feb 2019 +*/ + + +#include +#include + +SubscriptionHandler::SubscriptionHandler(void){ + + init(); + _time_out = std::chrono::seconds(5); + _num_retries = 2; + + // bool res; + // unsigned char buffer[128]; + // size_t buf_len = 128; + + // E2AP_PDU_t e2ap_pdu; + // subscription_request e2ap_sub_req; + + // int request_id = 2; + // int req_seq = 1; + // int function_id = 0; + // int action_id = 0; + // int action_type = 0; + // int message_type = 1; + + // subscription_helper sgnb_add_subscr_req; + + // //sgnb_add_subscr_req.clear(); + // sgnb_add_subscr_req.set_request(request_id, req_seq); + // sgnb_add_subscr_req.set_function_id(function_id); + // sgnb_add_subscr_req.add_action(action_id, action_type); + // std::string test = "This is a test"; + // sgnb_add_subscr_req.set_event_def(test.c_str(), test.length()); + // std::cout <<"Constructor ........" << std::endl; + // // generate the request pdu + // res = e2ap_sub_req.encode_e2ap_subscription(&buffer[0], &buf_len, &e2ap_pdu, sgnb_add_subscr_req); + // if(! res){ + // mdclog_write(MDCLOG_ERR, "%s, %d: Error encoding subscription pdu. Reason = ", __FILE__, __LINE__); + + // } + // std::cout <<"Encoded subscription request pdu " << std::endl; + + +} + +SubscriptionHandler::SubscriptionHandler(unsigned int timeout_seconds, unsigned int num_tries):_time_out(std::chrono::seconds(timeout_seconds)), _num_retries(num_tries){ + init(); + + +}; + +void SubscriptionHandler::init(void){ + + _data_lock = std::make_unique(); + _cv = std::make_unique(); + +} + +void SubscriptionHandler::clear(void){ + { + std::lock_guard lock(*(_data_lock).get()); + requests_table.clear(); + subscription_responses.clear(); + } + +}; + +size_t SubscriptionHandler::num_pending(void) const { + return requests_table.size(); +} + +size_t SubscriptionHandler::num_complete(void) const { + return subscription_responses.size(); +} + + +void SubscriptionHandler::set_timeout(unsigned int timeout_seconds){ + _time_out = std::chrono::seconds(timeout_seconds); +} + +void SubscriptionHandler::set_timeout_flag(bool val){ + _time_out_flag = val; +} + +void SubscriptionHandler::set_num_retries(unsigned int num_tries){ + _num_retries = num_tries; +}; + + +unsigned int SubscriptionHandler::get_next_id(void){ + std::lock_guard lock(*(_data_lock).get()); + unique_request_id ++; + return unique_request_id; +} + +bool SubscriptionHandler::add_request_entry(int id, int status){ + + // add entry in hash table if it does not exist + auto search = requests_table.find(id); + if(search != requests_table.end()){ + return false; + } + + requests_table[id] = status; + return true; + +}; + +bool SubscriptionHandler::set_request_status(int id, int status){ + + // change status of a request only if it exists. + + auto search = requests_table.find(id); + if(search != requests_table.end()){ + requests_table[id] = status; + return true; + } + + return false; + +}; + + +bool SubscriptionHandler::delete_request_entry(int id){ + + auto search = requests_table.find(id); + if (search != requests_table.end()){ + requests_table.erase(search); + return true; + } + + return false; +}; + +bool SubscriptionHandler::add_subscription_entry(int id, subscription_response_helper &he){ + + auto search = subscription_responses.find(id); + if (search == subscription_responses.end()){ + subscription_responses[id] = he; + return true; + } + + return false; +} + + +bool SubscriptionHandler::delete_subscription_entry(int id){ + + auto search = subscription_responses.find(id); + if(search == subscription_responses.end()){ + return false; + } + else{ + subscription_responses.erase(search); + return true; + } + +} + +subscription_response_helper * const SubscriptionHandler::get_subscription(int id){ + auto search = subscription_responses.find(id); + if(search == subscription_responses.end()){ + return NULL; + } + else{ + return &(subscription_responses[id]); + } +}; + + +// Handles responses from RMR +void SubscriptionHandler::Response(int message_type, unsigned char *payload, int payload_length){ + + bool res; + int id; + int type; + int procedureCode; + bool valid_response =false; + + E2AP_PDU_t * e2ap_recv; + asn_dec_rval_t retval; + + subscription_response sub_resp; + subscription_delete_response sub_del_resp; + + subscription_response_helper he_response; + + char buf[512]; + size_t buf_size = 512; + + e2ap_recv = 0; + retval = asn_decode(0, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2AP_PDU, (void**)&(e2ap_recv), payload, payload_length); + + if(retval.code != RC_OK){ + mdclog_write(MDCLOG_ERR, "%s, %d: Error decoding E2AP PDU of RMR type %d. Bytes decoded = %lu out of %d\n", __FILE__, __LINE__, message_type, retval.consumed, payload_length); + return; + } + + type = e2ap_recv->present; + mdclog_write(MDCLOG_INFO, "Received RMR message of type = %d", type); + + if(type == E2AP_PDU_PR_successfulOutcome){ + + procedureCode = e2ap_recv->choice.successfulOutcome->procedureCode; + mdclog_write(MDCLOG_INFO, "Received E2AP PDU successful outcome message with procedureCode = %d", procedureCode); + + if( procedureCode == ProcedureCode_id_ricSubscription){ + // subscription response + // decode the message + sub_resp.get_fields(e2ap_recv->choice.successfulOutcome, he_response); + { + std::lock_guard lock(*(_data_lock.get())); + // get the id + id = he_response.get_request_id(); + if (get_request_status(id) == request_pending ){ + res = add_subscription_entry(id, he_response); + if(res) + set_request_status(id, request_success); + + else + set_request_status(id, request_duplicate); + + valid_response = true; + } + else{ + std::string error_string = "Could not find id to match response = "; + mdclog_write(MDCLOG_ERR, "%s, %d: %s, %d", __FILE__, __LINE__, error_string.c_str(), id); + } + + } + + } + + else if( procedureCode == ProcedureCode_id_ricSubscriptionDelete){ + + res = sub_del_resp.get_fields(e2ap_recv->choice.successfulOutcome, he_response); + { + std::lock_guard lock(*(_data_lock.get())); + // get the id + id = he_response.get_request_id(); + if (get_request_status(id) == delete_request_pending ){ + // Remove the subscription from the table + res = delete_subscription_entry(id); + if(res){ + set_request_status(id, delete_request_success); + valid_response = true; + } + else{ + std::string error_string = "Error deleting subscription entry for id = "; + mdclog_write(MDCLOG_ERR, "%s, %d: %s, %d", __FILE__, __LINE__, error_string.c_str(), id); + } + } + + else{ + std::string error_string = "Could not find id for deletion = "; + mdclog_write(MDCLOG_ERR, "%s, %d: %s, %d", __FILE__, __LINE__, error_string.c_str(), id); + } + + } + } + + else{ + std::string error_string = "Handler received E2AP subscription message with Unknown procedure code =" ; + mdclog_write(MDCLOG_ERR, "%s, %d: %s, %d", __FILE__, __LINE__, error_string.c_str(), procedureCode); + } + + } + + else if(type == E2AP_PDU_PR_unsuccessfulOutcome){ + + procedureCode = e2ap_recv->choice.unsuccessfulOutcome->procedureCode; + mdclog_write(MDCLOG_INFO, "Received E2AP PDU unsuccessful outcome message with procedureCode = %d", procedureCode); + + if(procedureCode == ProcedureCode_id_ricSubscription){ + + sub_resp.get_fields(e2ap_recv->choice.unsuccessfulOutcome, he_response); + { + std::lock_guard lock(*(_data_lock.get())); + id = he_response.get_request_id(); + + if(get_request_status(id) == request_pending){ + set_request_status(id, request_failed); + valid_response = true; + mdclog_write(MDCLOG_INFO, "Subscription request %d failed", id); + } + else{ + std::string error_string = "Could not find id to match response = "; + mdclog_write(MDCLOG_ERR, "%s, %d: %s, %d", __FILE__, __LINE__, error_string.c_str(), id); + } + } + } + + else if(procedureCode == ProcedureCode_id_ricSubscriptionDelete){ + + res = sub_del_resp.get_fields(e2ap_recv->choice.unsuccessfulOutcome, he_response); + { + std::lock_guard lock(*(_data_lock.get())); + // get the id + id = he_response.get_request_id(); + if(get_request_status(id) == delete_request_pending){ + set_request_status(id, delete_request_failed); + mdclog_write(MDCLOG_INFO, "Subscription delete request %d failed", id); + valid_response = true; + } + else{ + std::string error_string = "Could not find id to match response = "; + mdclog_write(MDCLOG_ERR, "%s, %d: %s, %d", __FILE__, __LINE__, error_string.c_str(), id); + return; + } + + } + } + } + else{ + std::string error_string = "Handler received E2AP subscription message with Unknown procedure code =" ; + mdclog_write(MDCLOG_ERR, "%s, %d: %s, %d", __FILE__, __LINE__, error_string.c_str(), procedureCode); + } + + + ASN_STRUCT_FREE(asn_DEF_E2AP_PDU, e2ap_recv); + + // wake up all waiting users ... + if(valid_response){ + _cv.get()->notify_all(); + } + +} + + +int const SubscriptionHandler::get_request_status(int id){ + auto search = requests_table.find(id); + if (search == requests_table.end()){ + return -1; + } + + return search->second; +} + + bool SubscriptionHandler::is_subscription_entry(int id){ + auto search = subscription_responses.find(id); + if (search != subscription_responses.end()) + return true; + else + return false; +} + +bool SubscriptionHandler::is_request_entry(int id){ + auto search = requests_table.find(id); + if (search != requests_table.end()) + return true; + else + return false; +} diff --git a/src/E2AP-c/subscription/subscription_handler.hpp b/src/E2AP-c/subscription/subscription_handler.hpp new file mode 100644 index 0000000..c7fae3d --- /dev/null +++ b/src/E2AP-c/subscription/subscription_handler.hpp @@ -0,0 +1,324 @@ +/* +================================================================================== + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ + +/* Author : Ashwin Sridharan + Date : Feb 2019 +*/ + + +#pragma once + +#ifndef SUBSCRIPTION_HANDLER +#define SUBSCRIPTION_HANDLER + +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +using namespace std; + +typedef enum { + request_pending = 1, + request_success, + request_failed, + delete_request_pending, + delete_request_success, + delete_request_failed, + request_duplicate +}Subscription_Status_Types; + + +/* Class to process subscription related messages + each subscription request is assigned a unique internally +generated request id for tracking purposes. this is because +the e2 subscription request does not carry any gnodeb id information + +*/ + +class SubscriptionHandler { + +public: + SubscriptionHandler(void); + SubscriptionHandler(unsigned int, unsigned int); + + void init(void); + template + bool RequestSubscription(subscription_helper &, subscription_response_helper &, int , Transmitter &&); + + template + bool RequestSubscriptionDelete(subscription_helper &, subscription_response_helper &, int , Transmitter &&); + + + void Response(int, unsigned char *, int); + int const get_request_status(int); + subscription_response_helper * const get_subscription(int); + + unsigned int get_next_id(void); + void set_timeout(unsigned int); + void set_timeout_flag(bool); + void set_num_retries(unsigned int); + + bool is_subscription_entry(int); + bool is_request_entry(int); + + void clear(void); + size_t num_pending(void) const; + size_t num_complete(void) const ; + + + +private: + + void ProcessSubscriptionResponse(unsigned char *, int len); + void ProcessSubscriptionFailure(unsigned char *, int len); + + void ProcessDeleteResponse(unsigned char *, int len); + void ProcessSubscriptionDeleteFailure(unsigned char *, int len); + + bool add_request_entry(int, int); + bool set_request_status(int, int); + bool delete_request_entry(int); + + bool get_subscription_entry(int, int); + bool add_subscription_entry(int, subscription_response_helper &he); + bool delete_subscription_entry(int); + + std::unordered_map requests_table; + std::unordered_map subscription_responses; // stores list of successful subscriptions + + std::unique_ptr _data_lock; + std::unique_ptr _cv; + + std::chrono::seconds _time_out; + unsigned int _num_retries = 2; + bool _time_out_flag = true; + unsigned int unique_request_id = 0; + +}; + +template +bool SubscriptionHandler::RequestSubscription(subscription_helper &he, subscription_response_helper &response, int TxCode, Transmitter && tx){ + + bool res; + unsigned char buffer[512]; + size_t buf_len = 512; + + // get a new unique request id ... + unsigned int new_req_id = get_next_id(); + std::cout <<"Using id = " << new_req_id << std::endl; + he.set_request(new_req_id, he.get_req_seq()); + + E2AP_PDU_t *e2ap_pdu = 0; + subscription_request e2ap_sub_req; + + // generate the request pdu + res = e2ap_sub_req.encode_e2ap_subscription(&buffer[0], &buf_len, e2ap_pdu, he); + if(! res){ + mdclog_write(MDCLOG_ERR, "%s, %d: Error encoding subscription pdu. Reason = ", __FILE__, __LINE__); + return false; + } + + // put entry in request table + { + std::lock_guard lock(*(_data_lock.get())); + res = add_request_entry(he.get_request_id(), request_pending); + if(! res){ + mdclog_write(MDCLOG_ERR, "Error adding new subscription request %d to queue", he.get_request_id()); + return false; + } + } + + // acquire lock ... + std::unique_lock _local_lock(*(_data_lock.get())); + + + + // Send the message + res = tx(TxCode, buf_len, buffer); + if (!res){ + // clear state + delete_request_entry(he.get_request_id()); + mdclog_write(MDCLOG_ERR, "Error transmitting subscription request %d", he.get_request_id()); + return false; + }; + + + // record time stamp .. + auto start = std::chrono::system_clock::now(); + + while(1){ + + + + // wait to be woken up + _cv.get()->wait_for(_local_lock, _time_out); + + // we have woken and acquired data_lock + // check status and return appropriate object + + int status = get_request_status(he.get_request_id()); + + if (status == request_success){ + mdclog_write(MDCLOG_INFO, "Successfully subscribed for request %d", he.get_request_id()); + break; + } + + if (status == request_pending){ + // woken up spuriously or timed out + auto end = std::chrono::system_clock::now(); + std::chrono::duration f = end - start; + + if (_time_out_flag && f > _num_retries * _time_out){ + delete_request_entry(he.get_request_id()); + mdclog_write(MDCLOG_ERR, "Subscription request %d timed out waiting for response ", he.get_request_id()); + + // Release data lock + _local_lock.unlock(); + return false; + } + else{ + mdclog_write(MDCLOG_INFO, "Subscription request %d Waiting for response ....", he.get_request_id()); + continue; + } + } + + // if we are hear, some spurious + // status obtained or request failed . we return false + delete_request_entry(he.get_request_id()); + + // release data lock + _local_lock.unlock(); + + return false; + + }; + + // retreive the subscription response and clear queue + response = subscription_responses[he.get_request_id()]; + delete_request_entry(he.get_request_id()); + + // release data lock + _local_lock.unlock(); + + return true; +}; + + +template +bool SubscriptionHandler::RequestSubscriptionDelete(subscription_helper &he, subscription_response_helper &response, int TxCode, Transmitter && tx){ + + bool res; + + // First check if we have this subscription + if(! is_subscription_entry(he.get_request_id())){ + mdclog_write(MDCLOG_ERR, "subscription with id %d does not exist. Cannot be deleted", he.get_request_id()); + return false; + } + + // Also check if such a request is queued + if (is_request_entry(he.get_request_id())){ + mdclog_write(MDCLOG_ERR, "Subscription delete request with id %d already in queue", he.get_request_id()); + return false; + } + + subscription_delete e2ap_sub_req_del; + + // generate the delete request pdu + unsigned char buffer[128]; + size_t buf_len = 128; + + res = e2ap_sub_req_del.encode_e2ap_subscription(&buffer[0], &buf_len, he); + if(! res){ + mdclog_write(MDCLOG_ERR, "%s, %d: Error encoding subscription delete request pdu. Reason = %s", __FILE__, __LINE__, e2ap_sub_req_del.get_error().c_str()); + return false; + } + + // put entry in request table + res = add_request_entry(he.get_request_id(), delete_request_pending); + if(! res){ + mdclog_write(MDCLOG_ERR, "Error adding new subscription request %d to queue", he.get_request_id()); + return false; + } + + std::unique_lock _local_lock(*(_data_lock.get())); + + // Send the message + res = tx(TxCode, buf_len, buffer); + + if (!res){ + delete_request_entry(he.get_request_id()); + mdclog_write(MDCLOG_ERR, "Error transmitting delete subscription request %d", he.get_request_id()); + return false; + }; + + + // record time stamp .. + auto start = std::chrono::system_clock::now(); + + while(1){ + + // wait to be woken up + _cv.get()->wait_for(_local_lock, _time_out); + + // check status and return appropriate object + int status = get_request_status(he.get_request_id()); + if (status == delete_request_success){ + delete_request_entry(he.get_request_id()); + mdclog_write(MDCLOG_INFO, "Successfully deleted subscription id %d", he.get_request_id()); + _local_lock.unlock(); + break; + } + + if (status == delete_request_pending){ + // woken up spuriously or timed out + auto end = std::chrono::system_clock::now(); + std::chrono::duration f = end - start; + + if (_time_out_flag && f > _num_retries * _time_out){ + delete_request_entry(he.get_request_id()); + mdclog_write(MDCLOG_ERR, "Subscription delete request %d timed out waiting for response ", he.get_request_id()); + _local_lock.unlock(); + return false; + } + else{ + mdclog_write(MDCLOG_INFO, "Subscription delete request %d Waiting for response ....", he.get_request_id()); + } + + continue; + } + + // if we are hear, some spurious + // status obtained. we return false + + delete_request_entry(he.get_request_id()); + _local_lock.unlock(); + return false; + + }; + + return true; +}; + +#endif diff --git a/src/E2AP-c/subscription/subscription_helper.hpp b/src/E2AP-c/subscription/subscription_helper.hpp new file mode 100644 index 0000000..433f0ca --- /dev/null +++ b/src/E2AP-c/subscription/subscription_helper.hpp @@ -0,0 +1,192 @@ +/* +================================================================================== + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ + + +#ifndef SUB_HELPER_ +#define SUB_HELPER_ + +/* + Simple structure to store action related information based on E2 v0.22 + Used for subscription request, response etc + + ricActionID RICactionID, + ricActionType RICactionType, + ricActionDefinition RICactionDefinition OPTIONAL, + ricSubsequentAction RICsubsequentAction OPTIONAL, + ricCause +*/ + +#include +#include +#include +#include + +struct Action { + +public: + + Action(int id, int type): _is_def(false), _is_subs_act(false), _id(id), _type(type){}; + Action(int id, int type, const void *def, size_t def_size, int next, int wait): _is_def(false), _is_subs_act(false), _id(id), _type(type){ + + if (def_size > 0){ + _is_def = true; + _action_definition.set_ref(def); + _action_definition.set_size(def_size); + } + + if(next >= 0 && wait >= 0){ + _is_subs_act = true; + _next_action = next; + _wait = wait; + } + }; + + + int get_id() const{ + return _id; + } + + int get_type() const { + return _type; + } + + + const void * get_definition(void ) { + return _action_definition.get_ref(); + } + + int get_definition_size(void) const { + return _action_definition.get_size(); + }; + + + int get_subsequent_action() const { + return _next_action; + }; + + int get_wait() const { + return _wait; + } + + bool is_definition() const{ + + return _is_def; + } + + bool is_subsequent_action() const{ + return _is_subs_act; + } + +private: + + bool _is_def; + bool _is_subs_act; + int _id, _type, _next_action, _wait, _cause, _sub_cause; + bool _is_admit; + octet_helper _action_definition; + +}; + + +/* + Helper class that stores subscription data +*/ + + +struct subscription_helper { + +public: + + using action_t = std::vector; + + subscription_helper(){ + _action_ref = std::make_unique(); + curr_index = 0; + }; + + action_t * get_list() const {return _action_ref.get();}; + + void clear(void){ + _action_ref.get()->clear(); + } + + void set_request(int id, int seq_no){ + _req_id = id; + _req_seq_no = seq_no; + + }; + + void set_function_id(int id){ + _func_id = id; + }; + + void set_event_def(const void *ref, size_t size){ + _event_def.set_ref(ref); + _event_def.set_size(size); + }; + + + void add_action(int id, int type){ + Action a(id, type) ; + _action_ref.get()->push_back(a); + }; + + void add_action(int id, int type, std::string action_def, int next_action, int wait_time){ + Action a (id, type, action_def.c_str(), action_def.length(), next_action, wait_time); + _action_ref.get()->push_back(a); + }; + + + int get_request_id(void) const{ + return _req_id; + } + + int get_req_seq(void) const { + return _req_seq_no; + } + + int get_function_id(void) const{ + return _func_id; + } + + const void * get_event_def(void) { + return _event_def.get_ref(); + } + + int get_event_def_size(void) const { + return _event_def.get_size(); + } + + void print_sub_info(void){ + std::cout <<"Request ID = " << _req_id << std::endl; + std::cout <<"Request Sequence Number = " << _req_seq_no << std::endl; + std::cout <<"RAN Function ID = " << _func_id << std::endl; + for(auto const & e: *(_action_ref.get())){ + std::cout <<"Action ID = " << e.get_id() << " Action Type = " << e.get_type() << std::endl; + } + }; + +private: + + std::unique_ptr _action_ref; + int curr_index; + int _req_id, _req_seq_no, _func_id; + octet_helper _event_def; +}; + +#endif diff --git a/src/E2AP-c/subscription/subscription_request.cc b/src/E2AP-c/subscription/subscription_request.cc new file mode 100644 index 0000000..dd583a1 --- /dev/null +++ b/src/E2AP-c/subscription/subscription_request.cc @@ -0,0 +1,278 @@ + + +/* +================================================================================== + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ + + +#include "subscription_request.hpp" + +subscription_request::subscription_request(void){ + + _name = "default"; + + e2ap_pdu_obj = 0; + e2ap_pdu_obj = (E2AP_PDU_t * )calloc(1, sizeof(E2AP_PDU_t)); + assert(e2ap_pdu_obj != 0); + + initMsg = 0; + initMsg = (InitiatingMessage_t * )calloc(1, sizeof(InitiatingMessage_t)); + assert(initMsg != 0); + + IE_array = 0; + IE_array = (RICsubscriptionRequest_IEs_t *)calloc(NUM_SUBSCRIPTION_REQUEST_IES, sizeof(RICsubscriptionRequest_IEs_t)); + assert(IE_array != 0); + + action_array = 0; + action_array = (RICaction_ToBeSetup_ItemIEs_t *)calloc(INITIAL_LIST_SIZE, sizeof(RICaction_ToBeSetup_ItemIEs_t)); + assert(action_array != 0); + action_array_size = INITIAL_LIST_SIZE; + +}; + + + +// Clear assigned protocolIE list from RIC indication IE container +subscription_request::~subscription_request(void){ + + mdclog_write(MDCLOG_INFO, "Freeing subscription request memory for");; + + // Sequence of actions to be admitted causes special heart-ache. Free ric subscription element manually and reset the ie pointer + RICsubscription_t * ricsubscription_ie = &(IE_array[2].value.choice.RICsubscription); + + for(int i = 0; i < ricsubscription_ie->ricAction_ToBeSetup_List.list.size; i++){ + ricsubscription_ie->ricAction_ToBeSetup_List.list.array[i] = 0; + } + + if (ricsubscription_ie->ricAction_ToBeSetup_List.list.size > 0){ + free(ricsubscription_ie->ricAction_ToBeSetup_List.list.array); + ricsubscription_ie->ricAction_ToBeSetup_List.list.size = 0; + ricsubscription_ie->ricAction_ToBeSetup_List.list.count = 0; + ricsubscription_ie->ricAction_ToBeSetup_List.list.array = 0; + } + + free(action_array); + RICsubscriptionRequest_t * subscription_request = &(initMsg->value.choice.RICsubscriptionRequest); + + for(int i = 0; i < subscription_request->protocolIEs.list.size; i++){ + subscription_request->protocolIEs.list.array[i] = 0; + } + + if( subscription_request->protocolIEs.list.size > 0){ + free( subscription_request->protocolIEs.list.array); + subscription_request->protocolIEs.list.array = 0; + subscription_request->protocolIEs.list.size = 0; + subscription_request->protocolIEs.list.count = 0; + } + + free(IE_array); + free(initMsg); + e2ap_pdu_obj->choice.initiatingMessage = 0; + + ASN_STRUCT_FREE(asn_DEF_E2AP_PDU, e2ap_pdu_obj); + mdclog_write(MDCLOG_INFO, "Freed subscription request memory "); +}; + + +bool subscription_request::encode_e2ap_subscription(unsigned char *buf, size_t *size, E2AP_PDU_t *e2ap_pdu, subscription_helper &dinput){ + + bool res; + + e2ap_pdu_obj->choice.initiatingMessage = initMsg; + e2ap_pdu_obj->present = E2AP_PDU_PR_initiatingMessage; + + res = set_fields(e2ap_pdu_obj->choice.initiatingMessage, dinput); + if (!res){ + return false; + } + + //xer_fprint(stdout, &asn_DEF_E2AP_PDU, e2ap_pdu_obj); + int ret_constr = asn_check_constraints(&asn_DEF_E2AP_PDU, (void *) e2ap_pdu_obj, errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(errbuf, errbuf_len); + error_string = "Constraints failed for encoding subscription request. Reason = " + error_string; + return false; + } + + asn_enc_rval_t retval = asn_encode_to_buffer(0, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2AP_PDU, e2ap_pdu_obj, buf, *size); + + if(retval.encoded == -1){ + error_string.assign(strerror(errno)); + error_string = "Error encoding Subscription Delete Request. Reason = " + error_string; + return false; + } + else { + if(*size < retval.encoded){ + std::stringstream ss; + ss <<"Error encoding Subscription Delete Request . Reason = encoded pdu size " << retval.encoded << " exceeds buffer size " << *size << std::endl; + error_string = ss.str(); + retval.encoded = -1; + return false; + } + } + + *size = retval.encoded; + return true; + +} + + +bool subscription_request::set_fields(InitiatingMessage_t *ref_initMsg, subscription_helper &helper){ + + if (ref_initMsg == 0){ + error_string = "Error : Invalid reference when setting fields for subscription request"; + return false; + } + + int ie_index; + int result = 0; + + ref_initMsg->procedureCode = ProcedureCode_id_ricSubscription; + ref_initMsg->criticality = Criticality_reject; + ref_initMsg->value.present = InitiatingMessage__value_PR_RICsubscriptionRequest; + + RICsubscriptionRequest_t * subscription_request = &(ref_initMsg->value.choice.RICsubscriptionRequest); + + // Reset field count for protocolIEs + subscription_request->protocolIEs.list.count = 0; + + ie_index = 0; + RICsubscriptionRequest_IEs_t *ies_ricreq = &IE_array[ie_index]; + ies_ricreq->criticality = Criticality_reject; + ies_ricreq->id = ProtocolIE_ID_id_RICrequestID; + ies_ricreq->value.present = RICsubscriptionRequest_IEs__value_PR_RICrequestID; + RICrequestID_t *ricrequest_ie = &ies_ricreq->value.choice.RICrequestID; + ricrequest_ie->ricRequestorID = helper.get_request_id(); + ricrequest_ie->ricRequestSequenceNumber = helper.get_req_seq(); + result = ASN_SEQUENCE_ADD(&subscription_request->protocolIEs, ies_ricreq); + if (result == -1){ + error_string = "Erorr : Unable to assign memory to add RIC request id to subscription request"; + return false; + } + + ie_index = 1; + RICsubscriptionRequest_IEs_t *ies_ranfunc = &IE_array[ie_index]; + ies_ranfunc->criticality = Criticality_reject; + ies_ranfunc->id = ProtocolIE_ID_id_RANfunctionID; + ies_ranfunc->value.present = RICsubscriptionRequest_IEs__value_PR_RANfunctionID; + RANfunctionID_t *ranfunction_ie = &ies_ranfunc->value.choice.RANfunctionID; + *ranfunction_ie = helper.get_function_id(); + ASN_SEQUENCE_ADD(&subscription_request->protocolIEs, ies_ranfunc); + if (result == -1){ + error_string = "Erorr : Unable to assign memory to add RAN function id to subscription request"; + return false; + } + + + ie_index = 2; + RICsubscriptionRequest_IEs_t *ies_actid = &IE_array[ie_index]; + ies_actid->criticality = Criticality_reject; + ies_actid->id = ProtocolIE_ID_id_RICsubscription; + ies_actid->value.present = RICsubscriptionRequest_IEs__value_PR_RICsubscription; + RICsubscription_t *ricsubscription_ie = &ies_actid->value.choice.RICsubscription; + + ricsubscription_ie->ricEventTriggerDefinition.buf = (uint8_t *) helper.get_event_def(); + ricsubscription_ie->ricEventTriggerDefinition.size = helper.get_event_def_size(); + + std::vector * ref_action_array = helper.get_list(); + + // do we need to reallocate ? + if(action_array_size < ref_action_array->size()){ + action_array_size = 2 * ref_action_array->size(); + RICaction_ToBeSetup_ItemIEs_t * new_ref = 0; + new_ref = (RICaction_ToBeSetup_ItemIEs_t * )realloc(action_array, action_array_size); + assert(new_ref != 0); + action_array = new_ref; + } + + // reset the list count on ricAction_ToBeSetup_List; + ricsubscription_ie->ricAction_ToBeSetup_List.list.count = 0; + + for(int i = 0; i < ref_action_array->size(); i ++){ + action_array[i].criticality = Criticality_ignore; + action_array[i].id = ProtocolIE_ID_id_RICaction_ToBeSetup_Item ; + action_array[i].value.present = RICaction_ToBeSetup_ItemIEs__value_PR_RICaction_ToBeSetup_Item; + action_array[i].value.choice.RICaction_ToBeSetup_Item.ricActionID = (*ref_action_array)[i].get_id(); + action_array[i].value.choice.RICaction_ToBeSetup_Item.ricActionType = (*ref_action_array)[i].get_type(); + + result = ASN_SEQUENCE_ADD(&ricsubscription_ie->ricAction_ToBeSetup_List, &(action_array[i])); + if (result == -1){ + error_string = "Erorr : Unable to assign memory to add Action item to set up list"; + return false; + } + + + } + + result = ASN_SEQUENCE_ADD(&subscription_request->protocolIEs, ies_actid); + if (result == -1){ + error_string = "Erorr : Unable to assign memory to action item to be setup list subscription request"; + return false; + } + + return true; +}; + + + +bool subscription_request:: get_fields(InitiatingMessage_t * init_msg, subscription_helper & dout) +{ + + if (init_msg == 0){ + error_string = "Error. Invalid reference when getting fields from subscription request"; + return false; + } + + RICrequestID_t *requestid; + RANfunctionID_t * ranfunctionid; + RICsubscription_t * ricsubscription; + + for(int edx = 0; edx < init_msg->value.choice.RICsubscriptionRequest.protocolIEs.list.count; edx++) { + RICsubscriptionRequest_IEs_t *memb_ptr = init_msg->value.choice.RICsubscriptionRequest.protocolIEs.list.array[edx]; + + switch(memb_ptr->id) + { + case (ProtocolIE_ID_id_RICrequestID): + requestid = &memb_ptr->value.choice.RICrequestID; + dout.set_request(requestid->ricRequestorID, requestid->ricRequestSequenceNumber); + break; + + case (ProtocolIE_ID_id_RANfunctionID): + ranfunctionid = &memb_ptr->value.choice.RANfunctionID; + dout.set_function_id(*ranfunctionid); + break; + + case (ProtocolIE_ID_id_RICsubscription): + ricsubscription = &memb_ptr->value.choice.RICsubscription; + dout.set_event_def(ricsubscription->ricEventTriggerDefinition.buf, ricsubscription->ricEventTriggerDefinition.size); + + for(int index = 0; index < ricsubscription->ricAction_ToBeSetup_List.list.count; index ++){ + RICaction_ToBeSetup_ItemIEs_t * item = (RICaction_ToBeSetup_ItemIEs_t *)ricsubscription->ricAction_ToBeSetup_List.list.array[index]; + dout.add_action(item->value.choice.RICaction_ToBeSetup_Item.ricActionID, item->value.choice.RICaction_ToBeSetup_Item.ricActionType); + }; + + break; + } + + } + + //asn_fprint(stdout, &asn_DEF_E2AP_PDU, e2pdu); + return true; +}; + + + diff --git a/src/E2AP-c/subscription/subscription_request.hpp b/src/E2AP-c/subscription/subscription_request.hpp new file mode 100644 index 0000000..ed6bccd --- /dev/null +++ b/src/E2AP-c/subscription/subscription_request.hpp @@ -0,0 +1,72 @@ +/* +================================================================================== + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ + +#pragma once + +#ifndef S_REQUEST +#define S_REQUEST + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#define NUM_SUBSCRIPTION_REQUEST_IES 3 +#define INITIAL_LIST_SIZE 4 + +class subscription_request{ +public: + + subscription_request(std::string name); + subscription_request(void); + ~subscription_request(void); + + bool encode_e2ap_subscription(unsigned char *, size_t *, E2AP_PDU_t *, subscription_helper &); + bool set_fields(InitiatingMessage_t *, subscription_helper &); + bool get_fields(InitiatingMessage_t *, subscription_helper &); + + std::string get_error_string(void) const{ + return error_string; + } + +private: + + InitiatingMessage_t *initMsg; + E2AP_PDU_t * e2ap_pdu_obj; + + RICsubscriptionRequest_IEs_t * IE_array; + RICaction_ToBeSetup_ItemIEs_t * action_array; + unsigned int action_array_size; + char errbuf[128]; + size_t errbuf_len = 128; + std::string _name; + std::string error_string; +}; + + + +#endif diff --git a/src/E2AP-c/subscription/subscription_response.cc b/src/E2AP-c/subscription/subscription_response.cc new file mode 100644 index 0000000..b6ac77b --- /dev/null +++ b/src/E2AP-c/subscription/subscription_response.cc @@ -0,0 +1,562 @@ + + +/* +================================================================================== + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ + + +#include "subscription_response.hpp" + +/* The xAPP need only worry about the get_fields from a response, since it does +not generate a response. Generating response however is included to support testing. +*/ + + +// Primarly for generation +subscription_response::subscription_response(void){ + + e2ap_pdu_obj = 0; + e2ap_pdu_obj = (E2AP_PDU_t *)calloc(1, sizeof(E2AP_PDU_t)); + assert(e2ap_pdu_obj != 0); + + successMsg = 0; + successMsg = (SuccessfulOutcome_t *)calloc(1, sizeof(SuccessfulOutcome_t)); + assert(successMsg != 0); + + unsuccessMsg = 0; + unsuccessMsg = (UnsuccessfulOutcome_t *)calloc(1, sizeof(UnsuccessfulOutcome_t)); + assert(unsuccessMsg != 0); + + IE_array = 0; + IE_array = (RICsubscriptionResponse_IEs_t *)calloc(NUM_SUBSCRIPTION_RESPONSE_IES, sizeof(RICsubscriptionResponse_IEs_t)); + assert(IE_array != 0); + + IE_Failure_array = 0; + IE_Failure_array = (RICsubscriptionFailure_IEs_t *)calloc(NUM_SUBSCRIPTION_FAILURE_IES, sizeof(RICsubscriptionFailure_IEs_t)); + assert(IE_Failure_array != 0); + + ie_admitted_list = 0; + ie_admitted_list = (RICaction_Admitted_ItemIEs_t *)calloc(INITIAL_LIST_SIZE, sizeof(RICaction_Admitted_ItemIEs_t)); + assert(ie_admitted_list != 0); + ie_admitted_list_size = INITIAL_LIST_SIZE; + + ie_not_admitted_list = 0; + ie_not_admitted_list = (RICaction_NotAdmitted_ItemIEs_t *)calloc(INITIAL_LIST_SIZE, sizeof(RICaction_NotAdmitted_ItemIEs_t)); + assert(ie_not_admitted_list != 0); + ie_not_admitted_list_size = INITIAL_LIST_SIZE; + + +}; + + + +// Clear assigned protocolIE list from RIC indication IE container +subscription_response::~subscription_response(void){ + + mdclog_write(MDCLOG_INFO, "Freeing subscription response memory for"); + RICaction_Admitted_List_t * response_admitted_list = (RICaction_Admitted_List_t *) &(IE_array[2].value.choice.RICaction_Admitted_List); + + for(int i = 0; i < response_admitted_list->list.size; i++){ + response_admitted_list->list.array[i] = 0; + } + + + if (response_admitted_list->list.size > 0){ + free(response_admitted_list->list.array); + response_admitted_list->list.array = 0; + response_admitted_list->list.size = 0; + response_admitted_list->list.count = 0; + } + + + RICaction_NotAdmitted_List_t * response_not_admitted_list = &(IE_array[3].value.choice.RICaction_NotAdmitted_List); + for(int i = 0; i < response_not_admitted_list->list.size; i++){ + response_not_admitted_list->list.array[i] = 0; + } + + if (response_not_admitted_list->list.size > 0){ + free(response_not_admitted_list->list.array); + response_not_admitted_list->list.array = 0; + response_not_admitted_list->list.size = 0; + response_not_admitted_list->list.count = 0; + } + + RICsubscriptionResponse_t * ric_subscription_response = &(successMsg->value.choice.RICsubscriptionResponse); + for(int i = 0; i < ric_subscription_response->protocolIEs.list.size ; i++){ + ric_subscription_response->protocolIEs.list.array[i] = 0; + } + + if (ric_subscription_response->protocolIEs.list.size > 0){ + free(ric_subscription_response->protocolIEs.list.array); + ric_subscription_response->protocolIEs.list.array = 0; + ric_subscription_response->protocolIEs.list.size = 0; + ric_subscription_response->protocolIEs.list.count = 0; + } + + + RICaction_NotAdmitted_List_t * failure_not_admitted_list = &(IE_Failure_array[2].value.choice.RICaction_NotAdmitted_List); + for(int i = 0; i < failure_not_admitted_list->list.size; i++){ + failure_not_admitted_list->list.array[i] = 0; + } + + if ( failure_not_admitted_list->list.size > 0){ + free( failure_not_admitted_list->list.array); + failure_not_admitted_list->list.array = 0; + failure_not_admitted_list->list.size = 0; + failure_not_admitted_list->list.count = 0; + } + + + RICsubscriptionFailure_t * ric_subscription_failure = &(unsuccessMsg->value.choice.RICsubscriptionFailure); + for(int i = 0; i < ric_subscription_failure->protocolIEs.list.size; i++){ + ric_subscription_failure->protocolIEs.list.array[i] = 0; + } + + if ( ric_subscription_failure->protocolIEs.list.size > 0){ + free(ric_subscription_failure->protocolIEs.list.array); + ric_subscription_failure->protocolIEs.list.array = 0; + ric_subscription_failure->protocolIEs.list.size = 0; + ric_subscription_failure->protocolIEs.list.count = 0; + } + + + + free(ie_admitted_list); + free(ie_not_admitted_list); + free(IE_Failure_array); + free(IE_array); + + + ASN_STRUCT_FREE(asn_DEF_SuccessfulOutcome, successMsg); + ASN_STRUCT_FREE(asn_DEF_UnsuccessfulOutcome, unsuccessMsg); + + + e2ap_pdu_obj->choice.initiatingMessage = NULL; + e2ap_pdu_obj->present = E2AP_PDU_PR_NOTHING; + ASN_STRUCT_FREE(asn_DEF_E2AP_PDU, e2ap_pdu_obj); + + mdclog_write(MDCLOG_INFO, "Freed subscription response memory "); + + +}; + + +bool subscription_response::encode_e2ap_subscription_response(unsigned char *buf, size_t *size, E2AP_PDU_t *e2ap_pdu, subscription_response_helper &dinput, bool is_success){ + + //memset(e2ap_pdu, 0, sizeof(E2AP_PDU_t)); + + if(is_success){ + set_fields(successMsg, dinput); + e2ap_pdu_obj->present = E2AP_PDU_PR_successfulOutcome; + e2ap_pdu_obj->choice.successfulOutcome = successMsg; + } + else{ + set_fields(unsuccessMsg, dinput); + e2ap_pdu_obj->present = E2AP_PDU_PR_unsuccessfulOutcome; + e2ap_pdu_obj->choice.unsuccessfulOutcome = unsuccessMsg; + } + + //xer_fprint(stdout, &asn_DEF_E2AP_PDU, e2ap_pdu_obj); + + int ret_constr = asn_check_constraints(&asn_DEF_E2AP_PDU, (void *) e2ap_pdu_obj, errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(errbuf, errbuf_len); + error_string = "Constraints failed for encoding subscription response. Reason = " + error_string; + return false; + } + + asn_enc_rval_t res = asn_encode_to_buffer(0, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2AP_PDU, e2ap_pdu_obj, buf, *size); + + if(res.encoded == -1){ + std::cout <<"Error encoding PDU. Reason =" << strerror(errno) << std::endl; + return false; + } + else { + if(*size < res.encoded){ + fprintf(stderr, "Buffer assigned too small to encode: %s",(char *)(asn_DEF_E2AP_PDU.name)); + res.encoded = -1; + return false; + } + } + + *size = res.encoded; + return true; + +} + +void subscription_response::set_fields(SuccessfulOutcome_t *success, subscription_response_helper &helper){ + + int ie_index; + + success->procedureCode = ProcedureCode_id_ricSubscription; + success->criticality = Criticality_reject; + success->value.present = SuccessfulOutcome__value_PR_RICsubscriptionResponse; + + RICsubscriptionResponse_t * subscription_response = &(success->value.choice.RICsubscriptionResponse); + subscription_response->protocolIEs.list.count = 0; + + ie_index = 0; + RICsubscriptionResponse_IEs_t *ies_ricreq = &IE_array[ie_index]; + + ies_ricreq->criticality = Criticality_reject; + ies_ricreq->id = ProtocolIE_ID_id_RICrequestID; + ies_ricreq->value.present = RICsubscriptionResponse_IEs__value_PR_RICrequestID; + RICrequestID_t *ricrequest_ie = &ies_ricreq->value.choice.RICrequestID; + ricrequest_ie->ricRequestorID = helper.get_request_id(); + ricrequest_ie->ricRequestSequenceNumber = helper.get_req_seq(); + ASN_SEQUENCE_ADD(&subscription_response->protocolIEs, ies_ricreq); + + + ie_index = 1; + RICsubscriptionResponse_IEs_t *ies_ranfunc = &IE_array[ie_index]; + ies_ranfunc->criticality = Criticality_reject; + ies_ranfunc->id = ProtocolIE_ID_id_RANfunctionID; + ies_ranfunc->value.present = RICsubscriptionResponse_IEs__value_PR_RANfunctionID; + RANfunctionID_t *ranfunction_ie = &ies_ranfunc->value.choice.RANfunctionID; + *ranfunction_ie = helper.get_function_id(); + ASN_SEQUENCE_ADD(&subscription_response->protocolIEs, ies_ranfunc); + + ie_index = 2; + RICsubscriptionResponse_IEs_t *ies_admitted_actid = &IE_array[ie_index]; + ies_admitted_actid->criticality = Criticality_reject; + ies_admitted_actid->id = ProtocolIE_ID_id_RICactions_Admitted; + ies_admitted_actid->value.present = RICsubscriptionResponse_IEs__value_PR_RICaction_Admitted_List; + RICaction_Admitted_List_t *ric_admitted_actions_ie = &ies_admitted_actid->value.choice.RICaction_Admitted_List; + + std::vector * ref_admitted_action_array = helper.get_admitted_list(); + // realloc ? + if (ref_admitted_action_array->size() >= ie_admitted_list_size){ + RICaction_Admitted_ItemIEs_t * new_ref = 0; + ie_admitted_list_size = 2 * ref_admitted_action_array->size(); + new_ref = (RICaction_Admitted_ItemIEs_t *) realloc(ie_admitted_list, ie_admitted_list_size * sizeof(RICaction_Admitted_ItemIEs_t)); + assert(new_ref != 0); + ie_admitted_list = new_ref; + }; + + ric_admitted_actions_ie->list.count = 0; + for(int i = 0; i < ref_admitted_action_array->size(); i ++){ + ie_admitted_list[i].criticality = Criticality_ignore; + ie_admitted_list[i].id = ProtocolIE_ID_id_RICaction_Admitted_Item ; + ie_admitted_list[i].value.present = RICaction_Admitted_ItemIEs__value_PR_RICaction_Admitted_Item; + ie_admitted_list[i].value.choice.RICaction_Admitted_Item.ricActionID = (*ref_admitted_action_array)[i].get_id(); + ASN_SEQUENCE_ADD(ric_admitted_actions_ie, &(ie_admitted_list[i])); + } + + ASN_SEQUENCE_ADD(&subscription_response->protocolIEs, ies_admitted_actid); + + ie_index = 3; + RICsubscriptionResponse_IEs_t *ies_notadmitted_actid = &IE_array[ie_index]; + ies_notadmitted_actid->criticality = Criticality_reject; + ies_notadmitted_actid->id = ProtocolIE_ID_id_RICactions_NotAdmitted; + ies_notadmitted_actid->value.present = RICsubscriptionResponse_IEs__value_PR_RICaction_NotAdmitted_List; + RICaction_NotAdmitted_List_t *ric_not_admitted_actions_ie = &ies_notadmitted_actid->value.choice.RICaction_NotAdmitted_List; + + std::vector * ref_notadmitted_action_array = helper.get_not_admitted_list(); + //realloc ? + if (ref_notadmitted_action_array->size() >= ie_not_admitted_list_size){ + RICaction_NotAdmitted_ItemIEs_t * new_ref = 0; + ie_not_admitted_list_size = 2 * ref_notadmitted_action_array->size(); + new_ref = (RICaction_NotAdmitted_ItemIEs_t *) realloc(ie_not_admitted_list, ie_not_admitted_list_size * sizeof(RICaction_NotAdmitted_ItemIEs_t)); + assert(new_ref != 0); + ie_not_admitted_list = new_ref; + }; + + + // reset the list count + ric_not_admitted_actions_ie->list.count = 0; + for(int i = 0; i < ref_notadmitted_action_array->size(); i ++){ + ie_not_admitted_list[i].criticality = Criticality_ignore; + ie_not_admitted_list[i].id = ProtocolIE_ID_id_RICaction_NotAdmitted_Item ; + ie_not_admitted_list[i].value.present = RICaction_NotAdmitted_ItemIEs__value_PR_RICaction_NotAdmitted_Item;; + ie_not_admitted_list[i].value.choice.RICaction_NotAdmitted_Item.ricActionID = (*ref_notadmitted_action_array)[i].get_id(); + + int cause = (*ref_notadmitted_action_array)[i].get_cause(); + switch(cause){ + case RICcause_PR_radioNetwork: + ie_not_admitted_list[i].value.choice.RICaction_NotAdmitted_Item.ricCause.choice.radioNetwork = (*ref_notadmitted_action_array)[i].get_sub_cause(); + break; + case RICcause_PR_transport: + ie_not_admitted_list[i].value.choice.RICaction_NotAdmitted_Item.ricCause.choice.transport = (*ref_notadmitted_action_array)[i].get_sub_cause(); + break; + case RICcause_PR_protocol: + ie_not_admitted_list[i].value.choice.RICaction_NotAdmitted_Item.ricCause.choice.protocol= (*ref_notadmitted_action_array)[i].get_sub_cause(); + break; + case RICcause_PR_misc: + ie_not_admitted_list[i].value.choice.RICaction_NotAdmitted_Item.ricCause.choice.misc = (*ref_notadmitted_action_array)[i].get_sub_cause(); + break; + case RICcause_PR_ric: + ie_not_admitted_list[i].value.choice.RICaction_NotAdmitted_Item.ricCause.choice.ric = (*ref_notadmitted_action_array)[i].get_sub_cause(); + break; + default: + std::cout <<"Error ! Illegal cause enum" << cause << std::endl; + return; + } + + ie_not_admitted_list[i].value.choice.RICaction_NotAdmitted_Item.ricCause.present = (RICcause_PR)cause; + ASN_SEQUENCE_ADD(ric_not_admitted_actions_ie, &(ie_not_admitted_list[i])); + } + + ASN_SEQUENCE_ADD(&subscription_response->protocolIEs, ies_notadmitted_actid); + + +} + +void subscription_response:: get_fields(SuccessfulOutcome_t * success_msg, subscription_response_helper & dout) +{ + RICrequestID_t *requestid; + RANfunctionID_t * ranfunctionid; + RICaction_Admitted_List_t * ric_admitted_action_list; + RICaction_NotAdmitted_List_t * ric_not_admitted_action_list; + + for(int edx = 0; edx < success_msg->value.choice.RICsubscriptionResponse.protocolIEs.list.count; edx++) { + RICsubscriptionResponse_IEs_t *memb_ptr = success_msg->value.choice.RICsubscriptionResponse.protocolIEs.list.array[edx]; + + switch(memb_ptr->id) + { + case (ProtocolIE_ID_id_RICrequestID): + requestid = &memb_ptr->value.choice.RICrequestID; + dout.set_request(requestid->ricRequestorID, requestid->ricRequestSequenceNumber); + break; + + case (ProtocolIE_ID_id_RANfunctionID): + ranfunctionid = &memb_ptr->value.choice.RANfunctionID; + dout.set_function_id(*ranfunctionid); + break; + + case (ProtocolIE_ID_id_RICactions_Admitted): + ric_admitted_action_list = &memb_ptr->value.choice.RICaction_Admitted_List; + + // admitted actions + for(int index = 0; index < ric_admitted_action_list->list.count; index ++){ + RICaction_Admitted_ItemIEs_t * item = (RICaction_Admitted_ItemIEs_t *)ric_admitted_action_list->list.array[index]; + long int id = item->value.choice.RICaction_Admitted_Item.ricActionID; + dout.get_admitted_list()->push_back(ActionResponse(id)); + }; + + break; + + case (ProtocolIE_ID_id_RICactions_NotAdmitted): + ric_not_admitted_action_list = &memb_ptr->value.choice.RICaction_NotAdmitted_List; + + for(int index = 0; index < ric_not_admitted_action_list->list.count; index ++){ + RICaction_NotAdmitted_ItemIEs_t * item = (RICaction_NotAdmitted_ItemIEs_t *)ric_not_admitted_action_list->list.array[index]; + long int id = item->value.choice.RICaction_NotAdmitted_Item.ricActionID; + int cause = item->value.choice.RICaction_NotAdmitted_Item.ricCause.present; + int sub_cause; + switch(cause){ + + case RICcause_PR_radioNetwork : + sub_cause = item->value.choice.RICaction_NotAdmitted_Item.ricCause.choice.radioNetwork; + break; + + case RICcause_PR_transport : + sub_cause = item->value.choice.RICaction_NotAdmitted_Item.ricCause.choice.transport; + break; + + case RICcause_PR_protocol : + sub_cause = item->value.choice.RICaction_NotAdmitted_Item.ricCause.choice.protocol; + break; + + case RICcause_PR_misc : + sub_cause = item->value.choice.RICaction_NotAdmitted_Item.ricCause.choice.misc; + break; + + case RICcause_PR_ric : + sub_cause = item->value.choice.RICaction_NotAdmitted_Item.ricCause.choice.ric; + break; + + default: + std::cout <<"Error ! Illegal cause enum" << cause << std::endl; + return; + } + dout.get_not_admitted_list()->push_back(ActionResponse(id, cause, sub_cause)); + } + break; + } + + } + + //asn_fprint(stdout, &asn_DEF_E2AP_PDU, e2pdu); +} + + +void subscription_response::set_fields(UnsuccessfulOutcome_t *unsuccess, subscription_response_helper &helper){ + + int ie_index; + + unsuccess->procedureCode = ProcedureCode_id_ricSubscription; + unsuccess->criticality = Criticality_reject; + unsuccess->value.present = UnsuccessfulOutcome__value_PR_RICsubscriptionFailure; + + RICsubscriptionFailure_t * ric_subscription_failure = &(unsuccess->value.choice.RICsubscriptionFailure); + ric_subscription_failure->protocolIEs.list.count = 0; + + ie_index = 0; + RICsubscriptionFailure_IEs_t *ies_ricreq = &IE_Failure_array[ie_index]; + ies_ricreq->criticality = Criticality_reject; + ies_ricreq->id = ProtocolIE_ID_id_RICrequestID; + ies_ricreq->value.present = RICsubscriptionFailure_IEs__value_PR_RICrequestID; + RICrequestID_t *ricrequest_ie = &ies_ricreq->value.choice.RICrequestID; + ricrequest_ie->ricRequestorID = helper.get_request_id(); + ricrequest_ie->ricRequestSequenceNumber = helper.get_req_seq(); + ASN_SEQUENCE_ADD(&ric_subscription_failure->protocolIEs, ies_ricreq); + + ie_index = 1; + RICsubscriptionFailure_IEs_t *ies_ranfunc = &IE_Failure_array[ie_index]; + ies_ranfunc->criticality = Criticality_reject; + ies_ranfunc->id = ProtocolIE_ID_id_RANfunctionID; + ies_ranfunc->value.present = RICsubscriptionFailure_IEs__value_PR_RANfunctionID; + RANfunctionID_t *ranfunction_ie = &ies_ranfunc->value.choice.RANfunctionID; + *ranfunction_ie = helper.get_function_id(); + ASN_SEQUENCE_ADD(&ric_subscription_failure->protocolIEs, ies_ranfunc); + + + ie_index = 2; + RICsubscriptionFailure_IEs_t *ies_notadmitted_actid = &IE_Failure_array[ie_index]; + ies_notadmitted_actid->criticality = Criticality_reject; + ies_notadmitted_actid->id = ProtocolIE_ID_id_RICactions_NotAdmitted; + std::vector * ref_notadmitted_action_array = helper.get_not_admitted_list(); + + //realloc ? + if (ref_notadmitted_action_array->size() >= ie_not_admitted_list_size){ + RICaction_NotAdmitted_ItemIEs_t * new_ref = 0; + ie_not_admitted_list_size = 2 * ref_notadmitted_action_array->size(); + new_ref = (RICaction_NotAdmitted_ItemIEs_t *) realloc(ie_not_admitted_list, ie_not_admitted_list_size * sizeof(RICaction_NotAdmitted_ItemIEs_t)); + assert(new_ref != 0); + ie_not_admitted_list = new_ref; + }; + + ies_notadmitted_actid->value.present = RICsubscriptionFailure_IEs__value_PR_RICaction_NotAdmitted_List; + RICaction_NotAdmitted_List_t *ric_not_admitted_actions_ie = &ies_notadmitted_actid->value.choice.RICaction_NotAdmitted_List; + + + // reset the list count on ricAction_ToBeSetup_List; + ric_not_admitted_actions_ie->list.count = 0; + for(int i = 0; i < ref_notadmitted_action_array->size(); i ++){ + ie_not_admitted_list[i].criticality = Criticality_ignore; + ie_not_admitted_list[i].id = ProtocolIE_ID_id_RICaction_NotAdmitted_Item ; + ie_not_admitted_list[i].value.present = RICaction_NotAdmitted_ItemIEs__value_PR_RICaction_NotAdmitted_Item;; + ie_not_admitted_list[i].value.choice.RICaction_NotAdmitted_Item.ricActionID = (*ref_notadmitted_action_array)[i].get_id(); + + int cause = (*ref_notadmitted_action_array)[i].get_cause(); + switch(cause){ + case RICcause_PR_radioNetwork: + ie_not_admitted_list[i].value.choice.RICaction_NotAdmitted_Item.ricCause.choice.radioNetwork = (*ref_notadmitted_action_array)[i].get_sub_cause(); + break; + case RICcause_PR_transport: + ie_not_admitted_list[i].value.choice.RICaction_NotAdmitted_Item.ricCause.choice.transport = (*ref_notadmitted_action_array)[i].get_sub_cause(); + break; + case RICcause_PR_protocol: + ie_not_admitted_list[i].value.choice.RICaction_NotAdmitted_Item.ricCause.choice.protocol= (*ref_notadmitted_action_array)[i].get_sub_cause(); + break; + case RICcause_PR_misc: + ie_not_admitted_list[i].value.choice.RICaction_NotAdmitted_Item.ricCause.choice.misc = (*ref_notadmitted_action_array)[i].get_sub_cause(); + break; + case RICcause_PR_ric: + ie_not_admitted_list[i].value.choice.RICaction_NotAdmitted_Item.ricCause.choice.ric = (*ref_notadmitted_action_array)[i].get_sub_cause(); + break; + default: + std::cout <<"Error ! Illegal cause enum" << cause << std::endl; + return; + } + + ie_not_admitted_list[i].value.choice.RICaction_NotAdmitted_Item.ricCause.present = (RICcause_PR)cause; + + ASN_SEQUENCE_ADD(ric_not_admitted_actions_ie, &(ie_not_admitted_list[i])); + } + + ASN_SEQUENCE_ADD(&ric_subscription_failure->protocolIEs, ies_notadmitted_actid); + + + // // criticality diagnostics is not generated/parsed currently since optional + // i = 3; + // RICsubscriptionFailure_IEs_t *ies_criticality_diagnostics= &IE_Failure_array[i]; + // ies_criticality_diagnostics->criticality = Criticality_ignore; + // ies_criticality_diagnostics->id = ProtocolIE_ID_id_CriticalityDiagnostics ; + // ies_criticality_diagnostics->value.present = RICsubscriptionFailure_IEs__value_PR_NOTHING; + + +} + +void subscription_response:: get_fields(UnsuccessfulOutcome_t * unsuccess_msg, subscription_response_helper & dout) +{ + RICrequestID_t *requestid; + RANfunctionID_t * ranfunctionid; + RICaction_NotAdmitted_List_t * ric_not_admitted_action_list; + + for(int edx = 0; edx < unsuccess_msg->value.choice.RICsubscriptionFailure.protocolIEs.list.count; edx++) { + RICsubscriptionFailure_IEs_t *memb_ptr = unsuccess_msg->value.choice.RICsubscriptionFailure.protocolIEs.list.array[edx]; + + switch(memb_ptr->id) + { + case (ProtocolIE_ID_id_RICrequestID): + requestid = &memb_ptr->value.choice.RICrequestID; + dout.set_request(requestid->ricRequestorID, requestid->ricRequestSequenceNumber); + break; + + case (ProtocolIE_ID_id_RANfunctionID): + ranfunctionid = &memb_ptr->value.choice.RANfunctionID; + dout.set_function_id(*ranfunctionid); + break; + + + case (ProtocolIE_ID_id_RICactions_NotAdmitted): + ric_not_admitted_action_list = &memb_ptr->value.choice.RICaction_NotAdmitted_List; + + for(int index = 0; index < ric_not_admitted_action_list->list.count; index ++){ + RICaction_NotAdmitted_ItemIEs_t * item = (RICaction_NotAdmitted_ItemIEs_t *)ric_not_admitted_action_list->list.array[index]; + long int id = item->value.choice.RICaction_NotAdmitted_Item.ricActionID; + int cause = item->value.choice.RICaction_NotAdmitted_Item.ricCause.present; + int sub_cause; + switch(cause){ + + case RICcause_PR_radioNetwork : + sub_cause = item->value.choice.RICaction_NotAdmitted_Item.ricCause.choice.radioNetwork; + break; + + case RICcause_PR_transport : + sub_cause = item->value.choice.RICaction_NotAdmitted_Item.ricCause.choice.transport; + break; + + case RICcause_PR_protocol : + sub_cause = item->value.choice.RICaction_NotAdmitted_Item.ricCause.choice.protocol; + break; + + case RICcause_PR_misc : + sub_cause = item->value.choice.RICaction_NotAdmitted_Item.ricCause.choice.misc; + break; + + case RICcause_PR_ric : + sub_cause = item->value.choice.RICaction_NotAdmitted_Item.ricCause.choice.ric; + break; + + default: + std::cout <<"Error ! Illegal cause enum" << cause << std::endl; + return; + } + dout.get_not_admitted_list()->push_back(ActionResponse(id, cause, sub_cause)); + } + break; + } + + } + + //asn_fprint(stdout, &asn_DEF_E2AP_PDU, e2pdu); +} + + + diff --git a/src/E2AP-c/subscription/subscription_response.hpp b/src/E2AP-c/subscription/subscription_response.hpp new file mode 100644 index 0000000..30bb52d --- /dev/null +++ b/src/E2AP-c/subscription/subscription_response.hpp @@ -0,0 +1,82 @@ +/* +================================================================================== + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ + +#pragma once + +#ifndef S_RESPONSE_ +#define S_RESPONSE_ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#define NUM_SUBSCRIPTION_RESPONSE_IES 4 +#define NUM_SUBSCRIPTION_FAILURE_IES 3 +#define INITIAL_LIST_SIZE 4 + +class subscription_response{ +public: + + subscription_response(void); + ~subscription_response(void); + + bool encode_e2ap_subscription_response(unsigned char *, size_t *, E2AP_PDU_t *, subscription_response_helper &, bool); + void set_fields(SuccessfulOutcome_t *, subscription_response_helper &); + void get_fields(SuccessfulOutcome_t *, subscription_response_helper &); + + void set_fields(UnsuccessfulOutcome_t *, subscription_response_helper &); + void get_fields(UnsuccessfulOutcome_t *, subscription_response_helper &); + + std::string get_error_string(void) const{ + return error_string; + } + +private: + + E2AP_PDU_t * e2ap_pdu_obj; + SuccessfulOutcome_t * successMsg; + UnsuccessfulOutcome_t * unsuccessMsg; + + + RICsubscriptionResponse_IEs_t *IE_array; + RICsubscriptionFailure_IEs_t *IE_Failure_array; + + + RICaction_Admitted_ItemIEs_t * ie_admitted_list; + RICaction_NotAdmitted_ItemIEs_t * ie_not_admitted_list; + unsigned int ie_admitted_list_size, ie_not_admitted_list_size; + + char errbuf[128]; + size_t errbuf_len = 128; + std::string error_string; +}; + + + + +#endif diff --git a/src/E2SM/e2sm.cc b/src/E2SM/e2sm.cc new file mode 100644 index 0000000..069ac1c --- /dev/null +++ b/src/E2SM/e2sm.cc @@ -0,0 +1,632 @@ +/* + ================================================================================== + + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, softwares + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + ================================================================================== +*/ + +/* Classes to handle E2 service model based on e2sm-gNB-X2-release-1-v040.asn */ + +#include "e2sm.hpp" + + + + //initialize + e2sm_event_trigger::e2sm_event_trigger(void){ + + memset(&gNodeB_ID, 0, sizeof(GlobalGNB_ID_t)); + + event_trigger = 0; + event_trigger = ( E2SM_gNB_X2_eventTriggerDefinition_t *)calloc(1, sizeof( E2SM_gNB_X2_eventTriggerDefinition_t)); + assert(event_trigger != 0); + + // allocate space for gNodeB id (used for encoding) + gNodeB_ID.gNB_ID.choice.gNB_ID.buf = 0; + gNodeB_ID.gNB_ID.choice.gNB_ID.buf = (uint8_t *)calloc(4, sizeof(uint8_t)); + assert(gNodeB_ID.gNB_ID.choice.gNB_ID.buf != 0); + + // allocate space for plmn identity (used for encoding) + gNodeB_ID.pLMN_Identity.buf = 0; + gNodeB_ID.pLMN_Identity.buf = (uint8_t *) calloc(4, sizeof(uint8_t)); + assert(gNodeB_ID.pLMN_Identity.buf != 0); + + ie_list = 0; + ie_list = ( struct InterfaceProtocolIE_Item *) calloc(INITIAL_LIST_SIZE, sizeof( struct InterfaceProtocolIE_Item)); + assert(ie_list != 0); + ie_list_size = INITIAL_LIST_SIZE; + + condition_list = 0; + condition_list = (E2SM_gNB_X2_eventTriggerDefinition::E2SM_gNB_X2_eventTriggerDefinition__interfaceProtocolIE_List *) calloc(1, sizeof(E2SM_gNB_X2_eventTriggerDefinition::E2SM_gNB_X2_eventTriggerDefinition__interfaceProtocolIE_List )); + assert(condition_list != 0); + + + + }; + +e2sm_event_trigger::~e2sm_event_trigger(void){ + + mdclog_write(MDCLOG_INFO, "Freeing event trigger object memory"); + for(int i = 0; i < condition_list->list.size; i++){ + condition_list->list.array[i] = 0; + } + + if (condition_list->list.size > 0){ + free(condition_list->list.array); + condition_list->list.array = 0; + condition_list->list.size = 0; + condition_list->list.count = 0; + } + + free(condition_list); + condition_list = 0; + + free(gNodeB_ID.gNB_ID.choice.gNB_ID.buf); + gNodeB_ID.gNB_ID.choice.gNB_ID.buf = 0; + + free(gNodeB_ID.pLMN_Identity.buf); + gNodeB_ID.pLMN_Identity.buf = 0; + + free(ie_list); + ie_list = 0; + + event_trigger->interface_ID.choice.global_gNB_ID = 0; + event_trigger->interfaceProtocolIE_List = 0; + + ASN_STRUCT_FREE(asn_DEF_E2SM_gNB_X2_eventTriggerDefinition, event_trigger); + mdclog_write(MDCLOG_INFO, "Freed event trigger object memory"); + + +}; + +bool e2sm_event_trigger::encode_event_trigger(unsigned char *buf, size_t *size, e2sm_event_trigger_helper &helper){ + + bool res; + res = set_fields(event_trigger, helper); + if (!res){ + return false; + } + + int ret_constr = asn_check_constraints(&asn_DEF_E2SM_gNB_X2_eventTriggerDefinition, event_trigger, errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(&errbuf[0], errbuf_len); + return false; + } + + //xer_fprint(stdout, &asn_DEF_E2SM_gNB_X2_eventTriggerDefinition, event_trigger); + + asn_enc_rval_t retval = asn_encode_to_buffer(0, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2SM_gNB_X2_eventTriggerDefinition, event_trigger, buf, *size); + + if(retval.encoded == -1){ + error_string.assign(strerror(errno)); + return false; + } + else if (retval.encoded > *size){ + std::stringstream ss; + ss <<"Error encoding event trigger definition. Reason = encoded pdu size " << retval.encoded << " exceeds buffer size " << *size << std::endl; + error_string = ss.str(); + return false; + } + else{ + *size = retval.encoded; + } + + return true; +} + + +bool e2sm_event_trigger::set_fields(E2SM_gNB_X2_eventTriggerDefinition_t * ref_event_trigger, e2sm_event_trigger_helper & helper){ + if(ref_event_trigger == 0){ + error_string = "Invalid reference for Event Trigger Definition set fields"; + return false; + } + + // set the message type + ref_event_trigger->interfaceMessageType.procedureCode = helper.procedure_code; + ref_event_trigger->interfaceMessageType.typeOfMessage = helper.message_type; + + ref_event_trigger->interfaceDirection = helper.interface_direction; + ref_event_trigger->interface_ID.present = Interface_ID_PR_global_gNB_ID; + + ref_event_trigger->interface_ID.choice.global_gNB_ID = &gNodeB_ID; + + // to do : need to put correct code here for upding plmn id and gNodeB + // for now just place holders : + //================================================================ + memcpy(gNodeB_ID.pLMN_Identity.buf, helper.plmn_id.c_str(), 3); + gNodeB_ID.pLMN_Identity.size = 3; + + memcpy(gNodeB_ID.gNB_ID.choice.gNB_ID.buf, helper.egNB_id.c_str(), 3); + gNodeB_ID.gNB_ID.choice.gNB_ID.size = 3; + + // we only do global gNodeB id for now, not eNodeB + gNodeB_ID.gNB_ID.present = GNB_ID_PR_gNB_ID; + //================================================================ + + + // Add in any requested IE items + std::vector * ref_ie_array = helper.get_list(); + + if (ref_ie_array->size() == 0){ + event_trigger->interfaceProtocolIE_List = 0; + + } + else{ + event_trigger->interfaceProtocolIE_List = condition_list; + + //reallocate ? + if(ref_ie_array->size() > ie_list_size){ + struct InterfaceProtocolIE_Item *new_ref = 0; + ie_list_size = 2 * ref_ie_array->size(); + new_ref = (struct InterfaceProtocolIE_Item *)realloc(ie_list, ie_list_size); + assert(new_ref != 0); + ie_list = new_ref; + } + + // reset the count so that adds start from the beginning + ref_event_trigger->interfaceProtocolIE_List->list.count = 0; + + for(unsigned int i = 0; i < ref_ie_array->size(); i++){ + + ie_list[i].interfaceProtocolIE_ID = (*ref_ie_array)[i].interface_id; + ie_list[i].interfaceProtocolIE_Test = (*ref_ie_array)[i].test; + + //switch(ie_list[i].interfaceProtocolIE_Value.present){ + switch((*ref_ie_array)[i].val_type){ + + case (InterfaceProtocolIE_Value_PR_valueInt): + ie_list[i].interfaceProtocolIE_Value.present = InterfaceProtocolIE_Value_PR_valueInt; + ie_list[i].interfaceProtocolIE_Value.choice.valueInt = (*ref_ie_array)[i].value_n; + break; + + case (InterfaceProtocolIE_Value_PR_valueEnum): + ie_list[i].interfaceProtocolIE_Value.present = InterfaceProtocolIE_Value_PR_valueEnum; + ie_list[i].interfaceProtocolIE_Value.choice.valueEnum = (*ref_ie_array)[i].value_n; + break; + + case (InterfaceProtocolIE_Value_PR_valueBool): + ie_list[i].interfaceProtocolIE_Value.present = InterfaceProtocolIE_Value_PR_valueBool; + ie_list[i].interfaceProtocolIE_Value.choice.valueBool = (*ref_ie_array)[i].value_n; + break; + + case (InterfaceProtocolIE_Value_PR_valueBitS): + ie_list[i].interfaceProtocolIE_Value.present = InterfaceProtocolIE_Value_PR_valueBitS; + ie_list[i].interfaceProtocolIE_Value.choice.valueBitS.buf = (uint8_t *)(*ref_ie_array)[i].value_s.c_str(); + ie_list[i].interfaceProtocolIE_Value.choice.valueBitS.size = (*ref_ie_array)[i].value_s.length(); + break; + + default: + { + std::stringstream ss; + ss <<"Error ! " << __FILE__ << "," << __LINE__ << " illegal enum " << (*ref_ie_array)[i].val_type << " for interface Protocol IE value" << std::endl; + std::string error_string = ss.str(); + return false; + } + } + + ASN_SEQUENCE_ADD(ref_event_trigger->interfaceProtocolIE_List, &ie_list[i]); + } + } + + return true; +}; + + +bool e2sm_event_trigger::get_fields(E2SM_gNB_X2_eventTriggerDefinition_t * ref_event_trigger, e2sm_event_trigger_helper & helper){ + + if (ref_event_trigger == 0){ + error_string = "Invalid reference for Event Trigger definition get fields"; + return false; + } + + helper.procedure_code = ref_event_trigger->interfaceMessageType.procedureCode; + helper.message_type = ref_event_trigger->interfaceMessageType.typeOfMessage; + helper.interface_direction = ref_event_trigger->interfaceDirection; + + helper.plmn_id.assign((const char *)ref_event_trigger->interface_ID.choice.global_gNB_ID->pLMN_Identity.buf, ref_event_trigger->interface_ID.choice.global_gNB_ID->pLMN_Identity.size); + helper.egNB_id.assign((const char *)ref_event_trigger->interface_ID.choice.global_gNB_ID->gNB_ID.choice.gNB_ID.buf, ref_event_trigger->interface_ID.choice.global_gNB_ID->gNB_ID.choice.gNB_ID.size); + + return true; +}; + + + + +// initialize +e2sm_indication::e2sm_indication(void) { + + memset(&gNodeB_ID, 0, sizeof(GlobalGNB_ID_t)); + + // allocate space for gNodeB id (used for encoding) + gNodeB_ID.gNB_ID.choice.gNB_ID.buf = (uint8_t *)calloc(4, sizeof(uint8_t)); + assert(gNodeB_ID.gNB_ID.choice.gNB_ID.buf != 0); + + // allocate space for plmn identity (used for encoding) + gNodeB_ID.pLMN_Identity.buf = (uint8_t *) calloc(4, sizeof(uint8_t)); + assert(gNodeB_ID.pLMN_Identity.buf != 0); + + header = 0; + header = (E2SM_gNB_X2_indicationHeader_t *)calloc(1, sizeof(E2SM_gNB_X2_indicationHeader_t)); + assert(header != 0); + + message = 0; + message = (E2SM_gNB_X2_indicationMessage_t *)calloc(1, sizeof(E2SM_gNB_X2_indicationMessage_t)); + assert(message != 0); +} + +e2sm_indication::~e2sm_indication(void){ + mdclog_write(MDCLOG_INFO, "Freeing E2SM Indication object memory"); + + free(gNodeB_ID.gNB_ID.choice.gNB_ID.buf); + free(gNodeB_ID.pLMN_Identity.buf); + + header->interface_ID.choice.global_gNB_ID = 0; + + ASN_STRUCT_FREE(asn_DEF_E2SM_gNB_X2_indicationHeader, header); + + message->interfaceMessage.buf = 0; + message->interfaceMessage.size = 0; + + ASN_STRUCT_FREE(asn_DEF_E2SM_gNB_X2_indicationMessage, message); + mdclog_write(MDCLOG_INFO, "Freed E2SM Indication object memory"); + +} + + + +bool e2sm_indication::encode_indication_header(unsigned char *buf, size_t *size, e2sm_header_helper &helper){ + + bool res; + res = set_header_fields(header, helper); + if (!res){ + return false; + } + + int ret_constr = asn_check_constraints(&asn_DEF_E2SM_gNB_X2_indicationHeader, header, errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(&errbuf[0], errbuf_len); + error_string = "E2SM Indication Header Constraint failed : " + error_string; + + return false; + } + + asn_enc_rval_t retval = asn_encode_to_buffer(0, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2SM_gNB_X2_indicationHeader, header, buf, *size); + + if(retval.encoded == -1){ + error_string.assign(strerror(errno)); + error_string = "Error encoding E2SM Indication Header. Reason = " + error_string; + return false; + } + else if (retval.encoded > *size){ + std::stringstream ss; + ss <<"Error encoding E2SM Indication Header . Reason = encoded pdu size " << retval.encoded << " exceeds buffer size " << *size << std::endl; + error_string = ss.str(); + return false; + } + else{ + *size = retval.encoded; + } + + return true; +} + + +bool e2sm_indication::encode_indication_message(unsigned char *buf, size_t *size, e2sm_message_helper &helper){ + + set_message_fields(message, helper); + + int ret_constr = asn_check_constraints(&asn_DEF_E2SM_gNB_X2_indicationMessage, message, errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(&errbuf[0], errbuf_len); + error_string = "E2SM Indication Message Constraint failed : " + error_string; + return false; + } + + asn_enc_rval_t retval = asn_encode_to_buffer(0, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2SM_gNB_X2_indicationMessage, message, buf, *size); + if(retval.encoded == -1){ + error_string.assign(strerror(errno)); + error_string = "Error encoding E2SM Indication Header. Reason = " + error_string; + return false; + } + else if (retval.encoded > *size){ + std::stringstream ss; + ss <<"Error encoding E2SM Indication Message . Reason = encoded pdu size " << retval.encoded << " exceeds buffer size " << *size << std::endl; + error_string = ss.str(); + + return false; + } + else{ + *size = retval.encoded; + } + + return true; +} + + + +// Used when generating an indication header +bool e2sm_indication::set_header_fields(E2SM_gNB_X2_indicationHeader_t *header, e2sm_header_helper &helper){ + + if (header == 0){ + error_string = "Invalid reference for E2SM Indication Header set fields"; + return false; + } + + + header->interfaceDirection = helper.interface_direction; + header->interface_ID.present = Interface_ID_PR_global_gNB_ID; + header->interface_ID.choice.global_gNB_ID = &gNodeB_ID; + + + // to do : need to put correct code here for upding plmn id and gNodeB + // for now just place holders : + memcpy(gNodeB_ID.pLMN_Identity.buf, helper.plmn_id.c_str(), 3); + gNodeB_ID.pLMN_Identity.size = 3; + + memcpy(gNodeB_ID.gNB_ID.choice.gNB_ID.buf, helper.egNB_id.c_str(), 3); + gNodeB_ID.gNB_ID.choice.gNB_ID.size = 3; + + // we only do global gNodeB id for now, not eNodeB + gNodeB_ID.gNB_ID.present = GNB_ID_PR_gNB_ID; + + return true; + +}; + + +// used when decoding an indication header +bool e2sm_indication::get_header_fields(E2SM_gNB_X2_indicationHeader_t *header, e2sm_header_helper &helper){ + + if (header == 0){ + error_string = "Invalid reference for E2SM Indication header get fields"; + return false; + } + + helper.interface_direction = header->interfaceDirection; + helper.plmn_id.assign((const char *)header->interface_ID.choice.global_gNB_ID->pLMN_Identity.buf, header->interface_ID.choice.global_gNB_ID->pLMN_Identity.size); + helper.egNB_id.assign((const char *)header->interface_ID.choice.global_gNB_ID->gNB_ID.choice.gNB_ID.buf, header->interface_ID.choice.global_gNB_ID->gNB_ID.choice.gNB_ID.size); + + // to do : add code to decipher plmn and global gnodeb from ints (since that is likely the convention for packing) + + return true; +} + + + +// Used when generating an indication message +bool e2sm_indication::set_message_fields(E2SM_gNB_X2_indicationMessage_t *interface_message, e2sm_message_helper &helper){ + + if(interface_message == 0){ + error_string = "Invalid reference for E2SM Indication Message set fields"; + return false; + } + + // interface-message is an octet string. just point it to the buffer + interface_message->interfaceMessage.buf = &(helper.x2ap_pdu[0]); + interface_message->interfaceMessage.size = helper.x2ap_pdu_size; + + return true; + +}; + +// used when decoding an indication message +bool e2sm_indication::get_message_fields( E2SM_gNB_X2_indicationMessage_t *interface_message, e2sm_message_helper &helper){ + + + if(interface_message == 0){ + error_string = "Invalid reference for E2SM Indication Message get fields"; + return false; + } + + // interface message is an octet string + helper.x2ap_pdu = interface_message->interfaceMessage.buf;; + helper.x2ap_pdu_size = interface_message->interfaceMessage.size; + + return true; + +} + + + +// initialize +e2sm_control::e2sm_control(void) { + + memset(&gNodeB_ID, 0, sizeof(GlobalGNB_ID_t)); + + // allocate space for gNodeB id (used for encoding) + gNodeB_ID.gNB_ID.choice.gNB_ID.buf = (uint8_t *)calloc(4, sizeof(uint8_t)); + assert(gNodeB_ID.gNB_ID.choice.gNB_ID.buf != 0); + + // allocate space for plmn identity (used for encoding) + gNodeB_ID.pLMN_Identity.buf = (uint8_t *) calloc(4, sizeof(uint8_t)); + assert(gNodeB_ID.pLMN_Identity.buf != 0); + + header = 0; + header = (E2SM_gNB_X2_controlHeader_t *)calloc(1, sizeof(E2SM_gNB_X2_controlHeader_t)); + assert(header != 0); + + message = 0; + message = (E2SM_gNB_X2_controlMessage_t *)calloc(1, sizeof(E2SM_gNB_X2_controlMessage_t)); + assert(message != 0); +} + +e2sm_control::~e2sm_control(void){ + mdclog_write(MDCLOG_INFO, "Freeing E2SM Control object memory"); + + free(gNodeB_ID.gNB_ID.choice.gNB_ID.buf); + free(gNodeB_ID.pLMN_Identity.buf); + header->interface_ID.choice.global_gNB_ID = 0; + ASN_STRUCT_FREE(asn_DEF_E2SM_gNB_X2_controlHeader, header); + + message->interfaceMessage.buf = 0; + ASN_STRUCT_FREE(asn_DEF_E2SM_gNB_X2_controlMessage, message); + + mdclog_write(MDCLOG_INFO, "Freed E2SM Control object memory"); + +} + + + +bool e2sm_control::encode_control_header(unsigned char *buf, size_t *size, e2sm_header_helper &helper){ + + bool res; + res = set_header_fields(header, helper); + if (!res){ + return false; + } + + int ret_constr = asn_check_constraints(&asn_DEF_E2SM_gNB_X2_controlHeader, header, errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(&errbuf[0], errbuf_len); + error_string = "E2SM Control Header Constraint failed : " + error_string; + + return false; + } + + asn_enc_rval_t retval = asn_encode_to_buffer(0, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2SM_gNB_X2_controlHeader, header, buf, *size); + + if(retval.encoded == -1){ + error_string.assign(strerror(errno)); + error_string = "Error encoding E2SM Control Header. Reason = " + error_string; + return false; + } + else if (retval.encoded > *size){ + std::stringstream ss; + ss <<"Error encoding E2SM Control Header . Reason = encoded pdu size " << retval.encoded << " exceeds buffer size " << *size << std::endl; + error_string = ss.str(); + return false; + } + else{ + *size = retval.encoded; + } + + return true; +} + + +bool e2sm_control::encode_control_message(unsigned char *buf, size_t *size, e2sm_message_helper &helper){ + + set_message_fields(message, helper); + + int ret_constr = asn_check_constraints(&asn_DEF_E2SM_gNB_X2_controlMessage, message, errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(&errbuf[0], errbuf_len); + error_string = "E2SM Control Message Constraint failed : " + error_string; + return false; + } + + asn_enc_rval_t retval = asn_encode_to_buffer(0, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2SM_gNB_X2_controlMessage, message, buf, *size); + if(retval.encoded == -1){ + error_string.assign(strerror(errno)); + error_string = "Error encoding E2SM Control Message. Reason = " + error_string; + return false; + } + else if (retval.encoded > *size){ + std::stringstream ss; + ss <<"Error encoding E2SM Control Message . Reason = encoded pdu size " << retval.encoded << " exceeds buffer size " << *size << std::endl; + error_string = ss.str(); + + return false; + } + else{ + *size = retval.encoded; + } + + return true; +} + + + +// Used when generating an indication header +bool e2sm_control::set_header_fields(E2SM_gNB_X2_controlHeader_t *header, e2sm_header_helper &helper){ + + if (header == 0){ + error_string = "Invalid reference for E2SM Control Header set fields"; + return false; + } + + + header->interfaceDirection = helper.interface_direction; + header->interface_ID.present = Interface_ID_PR_global_gNB_ID; + header->interface_ID.choice.global_gNB_ID = &gNodeB_ID; + + + // to do : need to put correct code here for upding plmn id and gNodeB + // for now just place holders : + memcpy(gNodeB_ID.pLMN_Identity.buf, helper.plmn_id.c_str(), 3); + gNodeB_ID.pLMN_Identity.size = 3; + + memcpy(gNodeB_ID.gNB_ID.choice.gNB_ID.buf, helper.egNB_id.c_str(), 3); + gNodeB_ID.gNB_ID.choice.gNB_ID.size = 3; + + // we only do global gNodeB id for now, not eNodeB + gNodeB_ID.gNB_ID.present = GNB_ID_PR_gNB_ID; + + return true; + +}; + + +// used when decoding an indication header +bool e2sm_control::get_header_fields(E2SM_gNB_X2_controlHeader_t *header, e2sm_header_helper &helper){ + + if (header == 0){ + error_string = "Invalid reference for E2SM Control header get fields"; + return false; + } + + helper.interface_direction = header->interfaceDirection; + helper.plmn_id.assign((const char *)header->interface_ID.choice.global_gNB_ID->pLMN_Identity.buf, header->interface_ID.choice.global_gNB_ID->pLMN_Identity.size); + helper.egNB_id.assign((const char *)header->interface_ID.choice.global_gNB_ID->gNB_ID.choice.gNB_ID.buf, header->interface_ID.choice.global_gNB_ID->gNB_ID.choice.gNB_ID.size); + + // to do : add code to decipher plmn and global gnodeb from ints (since that is likely the convention for packing) + + return true; +} + + + +// Used when generating an indication message +bool e2sm_control::set_message_fields(E2SM_gNB_X2_controlMessage_t *interface_message, e2sm_message_helper &helper){ + + if(interface_message == 0){ + error_string = "Invalid reference for E2SM Control Message set fields"; + return false; + } + + // interface-message is an octet string. just point it to the buffer + interface_message->interfaceMessage.buf = &(helper.x2ap_pdu[0]); + interface_message->interfaceMessage.size = helper.x2ap_pdu_size; + + return true; + +}; + +// used when decoding an indication message +bool e2sm_control::get_message_fields( E2SM_gNB_X2_controlMessage_t *interface_message, e2sm_message_helper &helper){ + + + if(interface_message == 0){ + error_string = "Invalid reference for E2SM Control Message get fields"; + return false; + } + + // interface message is an octet string + helper.x2ap_pdu = interface_message->interfaceMessage.buf;; + helper.x2ap_pdu_size = interface_message->interfaceMessage.size; + + return true; + +} + diff --git a/src/E2SM/e2sm.hpp b/src/E2SM/e2sm.hpp new file mode 100644 index 0000000..d10a98c --- /dev/null +++ b/src/E2SM/e2sm.hpp @@ -0,0 +1,145 @@ +/* +================================================================================== + + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ + +/* Classes to handle E2 service model based on e2sm-gNB-X2-release-1-v040.asn */ + +#ifndef E2SM_ +#define E2SM_ + + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include + +#define INITIAL_LIST_SIZE 4 + + + + +/* builder class for E2SM event trigger definition */ + +class e2sm_event_trigger { +public: + e2sm_event_trigger(void); + ~e2sm_event_trigger(void); + + bool set_fields(E2SM_gNB_X2_eventTriggerDefinition_t *, e2sm_event_trigger_helper &); + bool get_fields(E2SM_gNB_X2_eventTriggerDefinition_t *, e2sm_event_trigger_helper &); + bool encode_event_trigger(unsigned char *, size_t *, e2sm_event_trigger_helper &); + + std::string get_error (void) const {return error_string ;}; + +private: + + E2SM_gNB_X2_eventTriggerDefinition_t * event_trigger; // used for encoding + GlobalGNB_ID_t gNodeB_ID; + struct InterfaceProtocolIE_Item * ie_list; + unsigned int ie_list_size; + + //std::vector ie_list; + E2SM_gNB_X2_eventTriggerDefinition::E2SM_gNB_X2_eventTriggerDefinition__interfaceProtocolIE_List *condition_list; + + char errbuf[128]; + size_t errbuf_len; + std::string error_string; +}; + + +/* builder class for E2SM indication using ASN1c */ + +class e2sm_indication { +public: + + e2sm_indication(void); + ~e2sm_indication(void); + + E2SM_gNB_X2_indicationHeader_t * get_header(void); + E2SM_gNB_X2_indicationMessage_t * get_message(void); + + bool set_header_fields(E2SM_gNB_X2_indicationHeader_t *, e2sm_header_helper &); + bool get_header_fields(E2SM_gNB_X2_indicationHeader_t *, e2sm_header_helper &); + + bool set_message_fields(E2SM_gNB_X2_indicationMessage_t *, e2sm_message_helper &); + bool get_message_fields(E2SM_gNB_X2_indicationMessage_t *, e2sm_message_helper &); + + bool encode_indication_header(unsigned char * , size_t * , e2sm_header_helper &); + bool encode_indication_message(unsigned char *, size_t *, e2sm_message_helper &); + std::string get_error (void) const {return error_string ; }; + +private: + + E2SM_gNB_X2_indicationHeader_t *header; // used for encoding + E2SM_gNB_X2_indicationMessage_t *message; // used for encoding + + char errbuf[128]; + size_t errbuf_len; + GlobalGNB_ID_t gNodeB_ID; + std::string error_string; + + +}; + +/* builder class for E2SM control using ASN1c */ + +class e2sm_control { +public: + + e2sm_control(void); + ~e2sm_control(void); + + E2SM_gNB_X2_controlHeader_t * get_header(void); + E2SM_gNB_X2_controlMessage_t * get_message(void); + + bool set_header_fields(E2SM_gNB_X2_controlHeader_t *, e2sm_header_helper &); + bool get_header_fields(E2SM_gNB_X2_controlHeader_t *, e2sm_header_helper &); + + bool set_message_fields(E2SM_gNB_X2_controlMessage_t *, e2sm_message_helper &); + bool get_message_fields(E2SM_gNB_X2_controlMessage_t *, e2sm_message_helper &); + + bool encode_control_header(unsigned char * , size_t * , e2sm_header_helper &); + bool encode_control_message(unsigned char *, size_t *, e2sm_message_helper &); + std::string get_error (void) const {return error_string ; }; + +private: + + E2SM_gNB_X2_controlHeader_t *header; // used for encoding + E2SM_gNB_X2_controlMessage_t *message; // used for encoding + + char errbuf[128]; + size_t errbuf_len; + GlobalGNB_ID_t gNodeB_ID; + std::string error_string; + + +}; + +#endif diff --git a/src/E2SM/e2sm_helpers.hpp b/src/E2SM/e2sm_helpers.hpp new file mode 100644 index 0000000..cee7b53 --- /dev/null +++ b/src/E2SM/e2sm_helpers.hpp @@ -0,0 +1,96 @@ + + +#ifndef E2SM_HELPER_ +#define E2SM_HELPER_ + +#include +#include +#include +#include + + /* information holder for E2SM indication header */ +typedef struct e2sm_header_helper e2sm_header_helper; +struct e2sm_header_helper { + int egNB_id_type; + + std::string egNB_id; + std::string plmn_id; + + long int interface_direction; + unsigned char* timestamp; +}; + +/* information holder for E2SM indication message */ +typedef struct e2sm_message_helper e2sm_message_helper; +struct e2sm_message_helper { + unsigned char * x2ap_pdu; + size_t x2ap_pdu_size; +}; + + +/* information holder for E2SM Action Trigger Definition */ +struct Item +{ + Item(long int id, long int test, long int val_type, int value):interface_id(id), test(test), val_type(val_type), value_n(value){}; + Item(long int id, long int test, long int val_type, std::string value):interface_id(id), test(test), val_type(val_type), value_s(value){}; + + long int interface_id; + long int test; + long int val_type; + long int value_n; + std::string value_s; + +}; + +typedef struct e2sm_event_trigger_helper e2sm_event_trigger_helper; +struct e2sm_event_trigger_helper { + + int egNB_id_type; + std::string egNB_id; + std::string plmn_id; + + long int interface_direction; + long int procedure_code; + + long int message_type; + + + std::vector * get_list(void){ return &protocol_ie_list; }; + void add_protocol_ie_item(long int id, long int test , unsigned int val_type, long int value ){ + // into list + protocol_ie_list.emplace_back(id, test, val_type, value); + }; + + void add_protocol_ie_item(long int id, long int test, unsigned int val_type, std::string value){ + // into list + protocol_ie_list.emplace_back(id, test, val_type, value); + }; + + void clear(void){ + protocol_ie_list.clear(); + } + + std::string get_string(void) const { + std::stringstream ss; + ss << "egNB_ID_type = " << egNB_id_type << std::endl; + ss << "PLMN Id = " << plmn_id << std::endl; + ss << "Procedure Code = " << procedure_code << std::endl; + ss << "Message Type = " << message_type << std::endl; + + std::string info; + info = ss.str(); + return info; + } + + + +private: + + std::vector protocol_ie_list; + +}; + + + + +#endif diff --git a/src/Makefile b/src/Makefile new file mode 100644 index 0000000..ab7ae57 --- /dev/null +++ b/src/Makefile @@ -0,0 +1,84 @@ +CXX:= g++ --std=c++14 -O2 +CC:= gcc -O2 + +SRC:=./ +E2AP_c:=./E2AP-c +E2SM := ./E2SM +X2AP:=./X2AP +SUBSCR:=$(E2AP_c)/subscription +JSON := ./json +PLUGININTERFACE :=./plugin-interface +CURL := ./curl +PLUGIN:=./protector-plugin +ASN1C_DEFS:=../asn1c_defs/all-defs + +# Logging library and flags +CLOGFLAGS:= `pkg-config mdclog --cflags` +LOG_LIBS:= `pkg-config mdclog --libs` +CURL_LIBS:= `pkg-config libcurl --libs` + +# Keep include dirs separate so we have transparency +BASEFLAGS= -Wall -std=c++14 $(CLOGFLAGS) + +XAPPFLAGS= -I./ +ASN1C_FLAGS=-I$(ASN1C_DEFS) -DASN_DISABLE_OER_SUPPORT +SUBSCRFLAGS= -I$(SUBSCR) +JSONFLAGS= -I$(JSON) +X2FLAGS= -I$(X2AP) +PLUGINFLAGS = -I$(PLUGIN) +PLUGININTERFACEFLAGS = -I$(PLUGININTERFACE) +CURLFLAGS = -I$(CURL) +E2AP_C_FLAGS = -I$(E2AP_c) +E2SM_FLAGS = -I$(E2SM) +C_BASEFLAGS=-Wall $(CLOGFLAGS) -DASN_DISABLE_OER_SUPPORT + +LIBS= -lrmr_nng -lnng -lpthread -lm $(LOG_LIBS) $(CURL_LIBS) +COV_FLAGS= -fprofile-arcs -ftest-coverage + +XAPP_SRC= adm-ctrl-xapp.cc \ + xapp_utils.cc \ + message_processor_class.cc \ + get_config.cc + +CURL_SRC=$(wildcard $(CURL)/*.cc) +JSON_SRC=$(wildcard $(JSON)/*.cc) +SUBSCR_SRC= $(wildcard $(SUBSCR)/*.cc) +X2AP_SRC = $(wildcard $(X2AP)/*.cc) +PLUGINS_SRC = $(wildcard $(PLUGIN)/*.cc) +PLUGININTERFACE_SRC = $(wildcard $(PLUGININTERFACE)/*.cc) +E2AP_C_SRC =$(wildcard $(E2AP_c)/*.cc) +E2SM_SRC = $(wildcard $(E2SM)/*.cc) +ASN1C_SRC= $(wildcard $(ASN1C_DEFS)/*.c) + +CURL_OBJ = $(CURL_SRC:.cc=.o) +JSON_OBJ = $(JSON_SRC:.cc=.o) +XAPP_OBJ= ${XAPP_SRC:.cc=.o} +SUBSCR_OBJ= ${SUBSCR_SRC:.cc=.o} +X2AP_OBJ= ${X2AP_SRC:.cc=.o} +PLUGINS_OBJ = ${PLUGINS_SRC:.cc=.o} +PLUGININTERFACE_OBJ = $(PLUGININTERFACE_SRC:.cc=.o) +E2AP_C_OBJ = $(E2AP_C_SRC:.cc=.o) +E2SM_OBJ = $(E2SM_SRC:.cc=.o) +ASN1C_MODULES = $(ASN1C_SRC:.c=.o) + +$(ASN1C_MODULES): export CFLAGS = $(C_BASEFLAGS) $(ASN1C_FLAGS) +$(CURL_OBJ):export CPPFLAGS=$(BASEFLAGS) $(CURLFLAGS) +$(JSON_OBJ):export CPPFLAGS= $(BASEFLAGS) $(JSONFLAGS) +$(PLUGININTERFACE_OBJ):export CPPFLAGS=$(BASEFLAGS) $(PLUGININTERFACEFLAGS) $(JSONFLAGS) +$(SUBSCR_OBJ): export CPPFLAGS=$(BASEFLAGS) $(ASN1C_FLAGS) $(E2AP_C_FLAGS) $(SUBSCRFLAGS) +$(E2AP_C_OBJ): export CPPFLAGS = $(BASEFLAGS) $(ASN1C_FLAGS) $(E2AP_C_FLAGS) +$(E2SM_OBJ): export CPPFLAGS = $(BASEFLAGS) $(ASN1C_FLAGS) $(E2SM_FLAGS) +$(X2AP_OBJ): export CPPFLAGS = $(BASEFLAGS) $(ASN1C_FLAGS) $(X2FLAGS) +$(PLUGINS_OBJ): export CPPFLAGS = $(BASEFLAGS) $(ASN1C_FLAGS) $(X2FLAGS) $(PLUGINFLAGS) $(PLUGININTERFACEFLAGS) $(JSONFLAGS) +$(XAPP_OBJ):export CPPFLAGS=$(BASEFLAGS) $(JSONFLAGS) $(SUBSCRFLAGS) $(PLUGINFLAGS) $(CURLFLAGS) $(E2AP_C_FLAGS) $(ASN1C_FLAGS) $(E2SM_FLAGS) $(X2FLAGS) $(XAPPFLAGS) $(PLUGININTERFACEFLAGS) + +OBJ= $(SUBSCR_OBJ) $(XAPP_OBJ) $(JSON_OBJ) $(PLUGINS_OBJ) $(CURL_OBJ) $(E2AP_C_OBJ) $(ASN1C_MODULES) $(E2SM_OBJ) $(X2AP_OBJ) $(PLUGININTERFACE_OBJ) + +adm-ctrl-xapp: $(OBJ) + $(CXX) -o $@ $(OBJ) $(LIBS) $(CPPFLAGS) $(CLOGFLAGS) + +install: adm-ctrl-xapp + install -D adm-ctrl-xapp /usr/local/bin/adm-ctrl-xapp + +clean: + -rm *.o $(JSON)/*.o $(E2AP_c)/*.o $(SUBSCR)/*.o $(PLUGIN)/*.o $(E2SM)/*.o $(X2AP)/*.o $(CURL)/*.o $(PLUGININTERFACE)/*.o adm-ctrl-xapp diff --git a/src/README.md b/src/README.md new file mode 100644 index 0000000..2691bc0 --- /dev/null +++ b/src/README.md @@ -0,0 +1,68 @@ +#================================================================================== + +# Copyright (c) 2018-2019 AT&T Intellectual Property. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#================================================================================== + + +This document gives an overview of the base class of a simple xAPP class. It is used to build the adm-ctrl-xapp executable + +Pre-requisitis : nanomsg libraries, nng libraries and ric messaging library + header must be installed and visible on standard library/include paths (via LD_LIBRARY_PATH, LIBRARY_PATH, CPATH) + +Usage Guidelines : +The base XaPP class is defined in xapp_utils.hpp. An XaPP class object can be instantiated in a number of ways : + +1. XaPP(char *app_name, char *protocol, int message_size) : where + - app_name points to a char array to identify this xapp (e.g "my_app_1") + - protocol points to a char array to specify the protocol/port on which this xAPP listens for messages (e.g "tcp:4561") + - message_size is the maximum size of messages allowed to send .. + + In this invocation, the number of listener threads (invoked when XaPP.Start() is called) is determined automatically based on hardware + + +2. XaPP(char *app_name, char *protocol, int message_size, int num_threads) : (RECOMMENDED) where + - app_name points to a char array to identify this xapp (e.g "my_app_1") + - protocol points to a char array to specify the protocol/port on which this xAPP listens for messages (e.g "tcp:4561") + - message_size is the maximum size of messages allowed to send .. + - num_threads is the number of threads to invoke on which the XaPP listens for and processes messages + + +3. The XaPP object can start listening to messages using the Start function, with two variants : + + - XaPP.Start(message_handler) : in this invocation, any message received by the XaPP is passed on the message_handler function which must have the signature bool *(rmr_mbuf_t *). + If the message handler wishes to respond, it must modify the message buffer in place and respond with a true value, else respond with false. + + - XaPP.Start(message_handler, error_handler) : in this invocation, the user can specify an error_handler function, which must have the signature void *(rmr_mubf_t *) if the sending of a message (processed by message_handler) fails. + + +4. The XaPP object can be used to send messages using the Send function with two variants : + - XaPP.Send(int message_type, int message_length, void *message_payload) + - XaPP.Send(rmr_mbuf_t * message); + They return true if message was sent successfuly and false if not + + +If the XaPP is started with multiple listening threads, they all share the same RMR context and invoke the same message handler/error handler user functions. Hence these are expected to be thread safe. Since all threads will listen to RMR, there is no gaurantee on which thread receives which message. + + +ASN1 PDU Processing +------------------- + +1. The basic X2AP builder class (which is responsible for encoding/decoding and setting the X2AP-ELEMENTARY-PROCEDURE) is in x2ap_pdu_builder.hpp +2. Any other IE requires own code for processing. Currently ResourceStatusRequest builder is under ResourceStatuRequest_builder.hpp and ResourceStatusResponse builder under ResourceStatusResponse_builder.hpp + + + +--- The adm-ctrl-xapp is a basic example to demonstrate RMR. The adm-ctrl-xapp just uses the basic xAPP class but with message processing done by message_processing.cc. + +It receives ResourceStatusRequest message over RMR (message type defined in RMR_services.h), decodes it, extracts elements and responds with a ResourceStatusResponse message (message type defined in RMR_services.h). As an example for verification, it subtracts 1 from the received enb1 and enb2 ids before inserting in response ... diff --git a/src/X2AP/sgnb_addition_helpers.hpp b/src/X2AP/sgnb_addition_helpers.hpp new file mode 100644 index 0000000..b5c18d6 --- /dev/null +++ b/src/X2AP/sgnb_addition_helpers.hpp @@ -0,0 +1,145 @@ +/* +================================================================================== + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ +/* + * ric_indication.h + * + * Created on: Aug 14, 2019 + * Author: Ashwin Sridharan + */ + +#ifndef SGNB_INDICATION_HELPER_ +#define SGNB_INDICATION_HELPER_ + + +#include +#include + +struct erab_sgnb_item { + erab_sgnb_item(void): qci(0), priority_level(0), pre_emption_capability(0), pre_emption_vulnerability(0), dl_forwarding(0), ul_configuration(0), secondary_meNB_UTL_GTP(0), transport_layer_addr(0), transport_layer_addr_size(0), transport_layer_addr_unused(0), gtp_tei(0), gtp_tei_size(0), rlc_mode(0) {}; + + /* Erab level qos parameters */ + long int qci; + long int priority_level; + long int pre_emption_capability; + long int pre_emption_vulnerability; + + + + /* Optional forwarding info */ + void * dl_forwarding; + void * ul_configuration; + void * secondary_meNB_UTL_GTP; + + /* Tunnel end point */ + unsigned char * transport_layer_addr; + int transport_layer_addr_size; + int transport_layer_addr_unused; + + unsigned char * gtp_tei; + int gtp_tei_size; + + /* Rlc mode */ + long int rlc_mode; +}; + + + +struct erab_item { + + erab_item(void):erab_id(0), drb_id(0), cause(0), pdcp_at_sgnb(0), mcg_resources(0), scg_resources(0), sgnb_pdcp_present(0) {}; + + long int erab_id; + long int drb_id; + + int cause; // used when not admitting + /* enums describing type + of resources present */ + + long int pdcp_at_sgnb; + long int mcg_resources; + long int scg_resources; + + + int sgnb_pdcp_present; + struct erab_sgnb_item sgnb_item; + +}; + + + + +class sgnb_addition_helper { + + +public: + + sgnb_addition_helper(void): menb_ue_x2ap_id(0), sgnb_ue_x2ap_id(0), encryption_algs(0), encryption_algs_size(0), encryption_algs_unused(0), integrity_protection_algs(0), integrity_protection_algs_size(0), integrity_protection_algs_unused(0), sgnb_security_key(0), sgnb_security_key_size(0), sgnb_security_key_unused(0), bit_rate_max_up(0), bit_rate_max_dn(0), menb_sgnb_container(0), menb_sgnb_container_size(0), selected_plmn(0), selected_plmn_size(0), plmn_identity(0), plmn_identity_size(0), eutran_identifier(0), eutran_identifier_size(0), eutran_identifier_unused(0), subscriber_profile_id(0), cause(0), cause_desc(0) {}; + + long int menb_ue_x2ap_id, sgnb_ue_x2ap_id; + + unsigned char *encryption_algs; + int encryption_algs_size; + int encryption_algs_unused; + + unsigned char *integrity_protection_algs; + int integrity_protection_algs_size; + int integrity_protection_algs_unused; + + unsigned char *sgnb_security_key; + int sgnb_security_key_size; + int sgnb_security_key_unused; + + long int bit_rate_max_up, bit_rate_max_dn; + + unsigned char *menb_sgnb_container; + int menb_sgnb_container_size; + + unsigned char *selected_plmn; + int selected_plmn_size; + + unsigned char *plmn_identity; + int plmn_identity_size; + + unsigned char *eutran_identifier; + int eutran_identifier_size; + int eutran_identifier_unused; + + + int subscriber_profile_id; + + int cause; // CHOICE {radioNetwork CauseRadioNetwork,transport CauseTransport,protocol CauseProtocol,misc CauseMisc} + int cause_desc; //enum CauseRadioNetwork, enum CauseTransport...etc + + void clear(void){ + erab_list.clear(); + erab_admitted_list.clear(); + erab_not_admitted_list.clear(); + }; + + std::vector * get_list(void) { return &erab_list;}; + std::vector * get_admitted_list(void) { return &erab_admitted_list;}; + std::vector * get_not_admitted_list(void) { return &erab_not_admitted_list;}; + + std::vector erab_list; + std::vector erab_admitted_list; + std::vector erab_not_admitted_list; + + +}; + +#endif diff --git a/src/X2AP/sgnb_addition_request.cc b/src/X2AP/sgnb_addition_request.cc new file mode 100644 index 0000000..5bd48a3 --- /dev/null +++ b/src/X2AP/sgnb_addition_request.cc @@ -0,0 +1,637 @@ +/* +================================================================================== + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ +/* + * ric_indication.h + * + * Created on: Aug 14, 2019 + * Author: Ashwin Sridharan + */ + +#include + + +sgnb_addition_request::sgnb_addition_request(void){ + x2ap_pdu_obj = 0; + x2ap_pdu_obj = (X2AP_PDU_t * )calloc(1, sizeof(X2AP_PDU_t)); + assert(x2ap_pdu_obj != 0); + + initMsg = 0; + initMsg = (X2InitiatingMessage_t * )calloc(1, sizeof(X2InitiatingMessage_t)); + assert(initMsg != 0); + + IE_array = 0; + IE_array = (SgNBAdditionRequest_IEs_t *)calloc(NUM_SGNB_ADDITION_REQUEST_IES, sizeof(SgNBAdditionRequest_IEs_t)); + assert(IE_array != 0); + + erab_array = 0; + erab_array = (E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_t * ) calloc(INITIAL_SIZE, sizeof(E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_t)); + assert(erab_array != 0); + erab_array_size = INITIAL_SIZE; + + erab_sgnb_present_array = 0; + erab_sgnb_present_array = (E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_t *) calloc(INITIAL_SIZE, sizeof(E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_t)); + assert(erab_sgnb_present_array != 0); + erab_sgnb_present_array_size = INITIAL_SIZE; + + erab_sgnb_notpresent_array = 0; + erab_sgnb_notpresent_array = (E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_t *) calloc(INITIAL_SIZE, sizeof(E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_t)); + assert(erab_sgnb_notpresent_array != 0); + erab_sgnb_notpresent_array_size = INITIAL_SIZE; + + x2ap_pdu_obj->present = X2AP_PDU_PR_initiatingMessage; + x2ap_pdu_obj->choice.initiatingMessage = initMsg; + + SgNBAdditionRequest_t * ric_indication = &(initMsg->value.choice.SgNBAdditionRequest); + for(int i = 0; i < NUM_SGNB_ADDITION_REQUEST_IES; i++){ + ASN_SEQUENCE_ADD(&(ric_indication->protocolIEs), &(IE_array[i])); + } + + +}; + + +sgnb_addition_request::~sgnb_addition_request(void){ + + mdclog_write(MDCLOG_INFO, "Freeing X2AP SgNB Addition Request object memory"); + + E_RABs_ToBeAdded_SgNBAddReqList_t * erabs_toadd_list = &(IE_array[7].value.choice. E_RABs_ToBeAdded_SgNBAddReqList); + for(int i = 0; i < erabs_toadd_list->list.size; i++){ + erabs_toadd_list->list.array[i] = 0; + } + + + if (erabs_toadd_list->list.size > 0){ + free(erabs_toadd_list->list.array); + erabs_toadd_list->list.array = 0; + erabs_toadd_list->list.size = 0; + erabs_toadd_list->list.count= 0; + } + + free(erab_sgnb_present_array); + + free(erab_sgnb_notpresent_array); + + free(erab_array); + + // Free BitRate allocation if any + SgNBAdditionRequest_IEs_t *ies_sgnb_addition_req; + ies_sgnb_addition_req= &IE_array[3]; + UEAggregateMaximumBitRate_t * ue_rates = &(ies_sgnb_addition_req->value.choice.UEAggregateMaximumBitRate); + + // clear buffer if previously allocated + if (ue_rates->uEaggregateMaximumBitRateDownlink.size > 0){ + ue_rates->uEaggregateMaximumBitRateDownlink.size = 0; + free(ue_rates->uEaggregateMaximumBitRateDownlink.buf); + } + + + if (ue_rates->uEaggregateMaximumBitRateUplink.size > 0){ + ue_rates->uEaggregateMaximumBitRateUplink.size = 0; + free(ue_rates->uEaggregateMaximumBitRateUplink.buf); + } + + SgNBAdditionRequest_t *sgnb_addition = &(initMsg->value.choice.SgNBAdditionRequest); + for(int i = 0; i < sgnb_addition->protocolIEs.list.size; i++){ + sgnb_addition->protocolIEs.list.array[i] = 0; + } + + + if (sgnb_addition->protocolIEs.list.size > 0){ + free(sgnb_addition->protocolIEs.list.array); + sgnb_addition->protocolIEs.list.array = 0; + sgnb_addition->protocolIEs.list.size = 0; + } + free(IE_array); + + free(initMsg); + + x2ap_pdu_obj->choice.initiatingMessage = 0; + ASN_STRUCT_FREE(asn_DEF_X2AP_PDU, x2ap_pdu_obj); + mdclog_write(MDCLOG_INFO, "Freed X2AP SgNB Addition Request object mempory"); +} + + + +bool sgnb_addition_request::encode_sgnb_addition_request(unsigned char *buf, size_t *size, sgnb_addition_helper & dinput){ + + initMsg->procedureCode = ProcedureCode_id_sgNBAdditionPreparation; + initMsg->criticality = Criticality_ignore; + initMsg->value.present = X2InitiatingMessage__value_PR_SgNBAdditionRequest; + + bool res; + res = set_fields(initMsg, dinput); + if (!res){ + return false; + } + + int ret_constr = asn_check_constraints(&asn_DEF_X2AP_PDU, x2ap_pdu_obj, errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(&errbuf[0], errbuf_len); + error_string = "Error encoding X2AP Sgnb Addition Request message. Reason = " + error_string; + return false; + } + + //xer_fprint(stdout, &asn_DEF_X2AP_PDU, x2ap_pdu_obj); + + asn_enc_rval_t retval = asn_encode_to_buffer(0, ATS_ALIGNED_BASIC_PER, &asn_DEF_X2AP_PDU, x2ap_pdu_obj, buf, *size); + if(retval.encoded == -1){ + error_string.assign(strerror(errno)); + return false; + } + + else { + if(*size < retval.encoded){ + std::stringstream ss; + ss <<"Error encoding SgNB Addition Request definition. Reason = encoded pdu size " << retval.encoded << " exceeds buffer size " << *size << std::endl; + error_string = ss.str(); + return false; + } + } + + *size = retval.encoded; + return true; + +} + + +bool sgnb_addition_request::set_fields(X2InitiatingMessage_t * init_msg, sgnb_addition_helper &dinput){ + + unsigned ie_index = 0; + + if (initMsg == 0){ + error_string = "Invalid reference for X2AP Sgnb Addition Request message in set_fields"; + return false; + } + + + SgNBAdditionRequest_IEs_t *ies_sgnb_addition_req; + + ie_index = 0; + ies_sgnb_addition_req= &IE_array[ie_index]; + ies_sgnb_addition_req->criticality = Criticality_reject; + ies_sgnb_addition_req->id = ProtocolIE_ID_id_MeNB_UE_X2AP_ID; + ies_sgnb_addition_req->value.present = SgNBAdditionRequest_IEs__value_PR_UE_X2AP_ID; + ies_sgnb_addition_req->value.choice.UE_X2AP_ID = dinput.menb_ue_x2ap_id; + + + ie_index = 1; + ies_sgnb_addition_req= &IE_array[ie_index]; + ies_sgnb_addition_req->criticality = Criticality_reject; + ies_sgnb_addition_req->id = ProtocolIE_ID_id_NRUESecurityCapabilities; + ies_sgnb_addition_req->value.present = SgNBAdditionRequest_IEs__value_PR_NRUESecurityCapabilities; + NRUESecurityCapabilities_t * nrue_sec = &(ies_sgnb_addition_req->value.choice.NRUESecurityCapabilities); + + nrue_sec->nRencryptionAlgorithms.buf =dinput.encryption_algs; + nrue_sec->nRencryptionAlgorithms.size = dinput.encryption_algs_size; + nrue_sec->nRencryptionAlgorithms.bits_unused = dinput.encryption_algs_unused; + + nrue_sec->nRintegrityProtectionAlgorithms.buf = dinput.integrity_protection_algs; + nrue_sec->nRintegrityProtectionAlgorithms.size = dinput.integrity_protection_algs_size; + nrue_sec->nRintegrityProtectionAlgorithms.bits_unused = dinput.integrity_protection_algs_unused; + + ie_index = 2; + ies_sgnb_addition_req= &IE_array[ie_index]; + ies_sgnb_addition_req->criticality = Criticality_reject; + ies_sgnb_addition_req->id = ProtocolIE_ID_id_SgNBSecurityKey ; + ies_sgnb_addition_req->value.present = SgNBAdditionRequest_IEs__value_PR_SgNBSecurityKey; + SgNBSecurityKey_t * sgnb_sec = &(ies_sgnb_addition_req->value.choice.SgNBSecurityKey); + + sgnb_sec->buf = dinput.sgnb_security_key; + sgnb_sec->size = dinput.sgnb_security_key_size; + sgnb_sec->bits_unused = dinput.sgnb_security_key_unused; + + ie_index = 3; + ies_sgnb_addition_req= &IE_array[ie_index]; + ies_sgnb_addition_req->criticality = Criticality_reject; + ies_sgnb_addition_req->id = ProtocolIE_ID_id_SgNBUEAggregateMaximumBitRate; + ies_sgnb_addition_req->value.present = SgNBAdditionRequest_IEs__value_PR_UEAggregateMaximumBitRate; + UEAggregateMaximumBitRate_t * ue_rates = &(ies_sgnb_addition_req->value.choice.UEAggregateMaximumBitRate); + + // clear buffer if previously allocated + if (ue_rates->uEaggregateMaximumBitRateDownlink.size > 0){ + ue_rates->uEaggregateMaximumBitRateDownlink.size = 0; + free(ue_rates->uEaggregateMaximumBitRateDownlink.buf); + } + + if (ue_rates->uEaggregateMaximumBitRateUplink.size > 0){ + ue_rates->uEaggregateMaximumBitRateUplink.size = 0; + free(ue_rates->uEaggregateMaximumBitRateUplink.buf); + } + + /* To do : Fix malloc done by this operation */ + asn_long2INTEGER(&(ue_rates->uEaggregateMaximumBitRateDownlink), dinput.bit_rate_max_dn); + asn_long2INTEGER(&(ue_rates->uEaggregateMaximumBitRateUplink), dinput.bit_rate_max_up); + + + ie_index = 4; + ies_sgnb_addition_req= &IE_array[ie_index]; + ies_sgnb_addition_req->criticality = Criticality_reject; + ies_sgnb_addition_req->id = ProtocolIE_ID_id_MeNBtoSgNBContainer ; + ies_sgnb_addition_req->value.present = SgNBAdditionRequest_IEs__value_PR_MeNBtoSgNBContainer; + MeNBtoSgNBContainer_t * metosg_container = &(ies_sgnb_addition_req->value.choice.MeNBtoSgNBContainer); + + metosg_container->buf = dinput.menb_sgnb_container; + metosg_container->size = dinput.menb_sgnb_container_size; + + + ie_index = 5; + ies_sgnb_addition_req= &IE_array[ie_index]; + ies_sgnb_addition_req->criticality = Criticality_reject; + ies_sgnb_addition_req->id = ProtocolIE_ID_id_MeNBCell_ID ; + ies_sgnb_addition_req->value.present = SgNBAdditionRequest_IEs__value_PR_ECGI; + ECGI_t * menb_ecgi = &(ies_sgnb_addition_req->value.choice.ECGI); + + menb_ecgi->pLMN_Identity.buf = dinput.plmn_identity; + menb_ecgi->pLMN_Identity.size = dinput.plmn_identity_size; + + menb_ecgi->eUTRANcellIdentifier.buf = dinput.eutran_identifier; + menb_ecgi->eUTRANcellIdentifier.size = dinput.eutran_identifier_size; + menb_ecgi->eUTRANcellIdentifier.bits_unused = 4; + + ie_index = 6; + ies_sgnb_addition_req = &IE_array[ie_index]; + ies_sgnb_addition_req->criticality = Criticality_reject; + ies_sgnb_addition_req->id = ProtocolIE_ID_id_SubscriberProfileIDforRFP; + ies_sgnb_addition_req->value.present = SgNBAdditionRequest_IEs__value_PR_SubscriberProfileIDforRFP; + ies_sgnb_addition_req->value.choice.SubscriberProfileIDforRFP = dinput.subscriber_profile_id; + + // add erab-tobe-added list + ie_index = 7; + ies_sgnb_addition_req= &IE_array[ie_index]; + ies_sgnb_addition_req->criticality = Criticality_reject; + ies_sgnb_addition_req->id = ProtocolIE_ID_id_E_RABs_ToBeAdded_SgNBAddReqList; + ies_sgnb_addition_req->value.present = SgNBAdditionRequest_IEs__value_PR_E_RABs_ToBeAdded_SgNBAddReqList; + E_RABs_ToBeAdded_SgNBAddReqList_t * erabs_toadd_list = &(ies_sgnb_addition_req->value.choice.E_RABs_ToBeAdded_SgNBAddReqList); + + std::vector * ref_erab_input = &(dinput.erab_list); + erabs_toadd_list->list.count = 0; + + // resize ? + if (ref_erab_input->size() >= erab_array_size){ + erab_array_size = 2 * ref_erab_input->size(); + + E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_t * new_ref = 0; + new_ref = (E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_t *)realloc(erab_array, erab_array_size * sizeof(E_RABs_ToBeAdded_SgNBAddReq_Item_t)); + assert(new_ref != 0); + erab_array = new_ref; + + erab_sgnb_present_array_size = 2 * ref_erab_input->size(); + E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_t * new_present = 0; + new_present = (E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_t *)realloc(erab_sgnb_present_array, erab_sgnb_present_array_size * sizeof(E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_t )); + assert(new_present != 0); + erab_sgnb_present_array = new_present; + + erab_sgnb_notpresent_array_size = 2 * ref_erab_input->size(); + E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_t * new_notpresent = 0; + new_notpresent = (E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_t *)realloc(erab_sgnb_notpresent_array, erab_sgnb_notpresent_array_size * sizeof(E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_t )); + assert(new_notpresent != 0); + erab_sgnb_notpresent_array = new_notpresent; + + + } + + int sgnb_present_index = 0; + int sgnb_notpresent_index = 0; + + for(unsigned int i = 0; i < ref_erab_input->size(); i++){ + + + erab_array[i].id = ProtocolIE_ID_id_E_RABs_ToBeAdded_SgNBAddReq_Item ; + erab_array[i].criticality = Criticality_reject; + erab_array[i].value.present = E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value_PR_E_RABs_ToBeAdded_SgNBAddReq_Item; + E_RABs_ToBeAdded_SgNBAddReq_Item_t * erab_item = &(erab_array[i].value.choice.E_RABs_ToBeAdded_SgNBAddReq_Item); + + erab_item->e_RAB_ID = (*ref_erab_input)[i].erab_id; + erab_item->drb_ID = (*ref_erab_input)[i].drb_id; + + erab_item->en_DC_ResourceConfiguration.pDCPatSgNB = (*ref_erab_input)[i].pdcp_at_sgnb; + erab_item->en_DC_ResourceConfiguration.mCGresources = (*ref_erab_input)[i].mcg_resources; + erab_item->en_DC_ResourceConfiguration.sCGresources = (*ref_erab_input)[i].scg_resources; + + erab_item->resource_configuration.present = (E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration_PR)(*ref_erab_input)[i].sgnb_pdcp_present; + + + if( erab_item->resource_configuration.present == E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration_PR_sgNBPDCPpresent){ + erab_sgnb_present_array[sgnb_present_index].full_E_RAB_Level_QoS_Parameters.qCI = (*ref_erab_input)[i].sgnb_item.qci; + erab_sgnb_present_array[sgnb_present_index].full_E_RAB_Level_QoS_Parameters.allocationAndRetentionPriority.priorityLevel = (*ref_erab_input)[i].sgnb_item.priority_level; + erab_sgnb_present_array[sgnb_present_index].full_E_RAB_Level_QoS_Parameters.allocationAndRetentionPriority.pre_emptionCapability = (*ref_erab_input)[i].sgnb_item.pre_emption_capability; + erab_sgnb_present_array[sgnb_present_index].full_E_RAB_Level_QoS_Parameters.allocationAndRetentionPriority.pre_emptionVulnerability = (*ref_erab_input)[i].sgnb_item.pre_emption_vulnerability; + + erab_sgnb_present_array[sgnb_present_index].s1_UL_GTPtunnelEndpoint.transportLayerAddress.buf = (*ref_erab_input)[i].sgnb_item.transport_layer_addr; + erab_sgnb_present_array[sgnb_present_index].s1_UL_GTPtunnelEndpoint.transportLayerAddress.size = (*ref_erab_input)[i].sgnb_item.transport_layer_addr_size; + erab_sgnb_present_array[sgnb_present_index].s1_UL_GTPtunnelEndpoint.transportLayerAddress.bits_unused = (*ref_erab_input)[i].sgnb_item.transport_layer_addr_unused; + + erab_sgnb_present_array[sgnb_present_index].s1_UL_GTPtunnelEndpoint.gTP_TEID.buf = (*ref_erab_input)[i].sgnb_item.gtp_tei; + erab_sgnb_present_array[sgnb_present_index].s1_UL_GTPtunnelEndpoint.gTP_TEID.size = (*ref_erab_input)[i].sgnb_item.gtp_tei_size; + + /* Force all optional parameters that are not set to NULL */ + erab_sgnb_present_array[sgnb_present_index].max_MCG_admit_E_RAB_Level_QoS_Parameters = NULL; + erab_sgnb_present_array[sgnb_present_index].dL_Forwarding = NULL; + erab_sgnb_present_array[sgnb_present_index].meNB_DL_GTP_TEIDatMCG = NULL; + + + /* validate constraints ..*/ + int ret_constr; + + ret_constr = asn_check_constraints(&asn_DEF_AllocationAndRetentionPriority, &erab_sgnb_present_array[sgnb_present_index].full_E_RAB_Level_QoS_Parameters.allocationAndRetentionPriority, errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(&errbuf[0], errbuf_len); + error_string = "Error in constraints for Allocation Priority.. Reason = " + error_string; + return false; + } + + ret_constr = asn_check_constraints(&asn_DEF_E_RAB_Level_QoS_Parameters, &erab_sgnb_present_array[sgnb_present_index].full_E_RAB_Level_QoS_Parameters, errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(&errbuf[0], errbuf_len); + error_string = "Error in constraints for ERAB QoS Parameters.. Reason = " + error_string; + return false; + } + + + ret_constr = asn_check_constraints(&asn_DEF_GTP_TEI, &erab_sgnb_present_array[sgnb_present_index].s1_UL_GTPtunnelEndpoint.gTP_TEID, errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(&errbuf[0], errbuf_len); + error_string = "Error in constraints for GTP TEID.. Reason = " + error_string; + return false; + } + + ret_constr = asn_check_constraints(&asn_DEF_GTPtunnelEndpoint, &erab_sgnb_present_array[sgnb_present_index].s1_UL_GTPtunnelEndpoint, errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(&errbuf[0], errbuf_len); + error_string = "Error in constraints for GTP tunnel endpoint .. Reason = " + error_string; + return false; + } + + + ret_constr = asn_check_constraints(&asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent, &erab_sgnb_present_array[sgnb_present_index], errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(&errbuf[0], errbuf_len); + error_string = "Error in constraints for E_RABS_ToBeAdded_SgNBAddReq_SgNBPDCPpresent.. Reason = " + error_string; + return false; + } + + + erab_item->resource_configuration.choice.sgNBPDCPpresent = &erab_sgnb_present_array[sgnb_present_index]; + + sgnb_present_index ++; + + } + else if (erab_item->resource_configuration.present == E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration_PR_sgNBPDCPnotpresent){ + + + erab_sgnb_notpresent_array[sgnb_notpresent_index].requested_SCG_E_RAB_Level_QoS_Parameters.qCI = (*ref_erab_input)[i].sgnb_item.qci; + erab_sgnb_notpresent_array[sgnb_notpresent_index].requested_SCG_E_RAB_Level_QoS_Parameters.allocationAndRetentionPriority.priorityLevel = (*ref_erab_input)[i].sgnb_item.priority_level; + erab_sgnb_notpresent_array[sgnb_notpresent_index].requested_SCG_E_RAB_Level_QoS_Parameters.allocationAndRetentionPriority.pre_emptionCapability = (*ref_erab_input)[i].sgnb_item.pre_emption_capability; + erab_sgnb_notpresent_array[sgnb_notpresent_index].requested_SCG_E_RAB_Level_QoS_Parameters.allocationAndRetentionPriority.pre_emptionVulnerability = (*ref_erab_input)[i].sgnb_item.pre_emption_vulnerability; + erab_sgnb_notpresent_array[sgnb_notpresent_index].requested_SCG_E_RAB_Level_QoS_Parameters.gbrQosInformation = 0; + + erab_sgnb_notpresent_array[sgnb_notpresent_index].meNB_UL_GTP_TEIDatPDCP.transportLayerAddress.buf = (*ref_erab_input)[i].sgnb_item.transport_layer_addr; + erab_sgnb_notpresent_array[sgnb_notpresent_index].meNB_UL_GTP_TEIDatPDCP.transportLayerAddress.size = (*ref_erab_input)[i].sgnb_item.transport_layer_addr_size; + erab_sgnb_notpresent_array[sgnb_notpresent_index].meNB_UL_GTP_TEIDatPDCP.transportLayerAddress.bits_unused = (*ref_erab_input)[i].sgnb_item.transport_layer_addr_unused; + + erab_sgnb_notpresent_array[sgnb_notpresent_index].meNB_UL_GTP_TEIDatPDCP.gTP_TEID.buf = (unsigned char *)(*ref_erab_input)[i].sgnb_item.gtp_tei; + erab_sgnb_notpresent_array[sgnb_notpresent_index].meNB_UL_GTP_TEIDatPDCP.gTP_TEID.size = (*ref_erab_input)[i].sgnb_item.gtp_tei_size; + + erab_sgnb_notpresent_array[sgnb_notpresent_index].rlc_Mode = (*ref_erab_input)[i].sgnb_item.rlc_mode; + + /* validate constraints ..*/ + int ret_constr; + + ret_constr = asn_check_constraints(&asn_DEF_AllocationAndRetentionPriority, &erab_sgnb_notpresent_array[sgnb_notpresent_index].requested_SCG_E_RAB_Level_QoS_Parameters.allocationAndRetentionPriority, errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(&errbuf[0], errbuf_len); + error_string = "Error in constraints for Allocation Priority.. Reason = " + error_string; + return false; + } + + ret_constr = asn_check_constraints(&asn_DEF_E_RAB_Level_QoS_Parameters, &erab_sgnb_notpresent_array[sgnb_notpresent_index].requested_SCG_E_RAB_Level_QoS_Parameters, errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(&errbuf[0], errbuf_len); + error_string = "Error in constraints for ERAB QoS Parameters.. Reason = " + error_string; + return false; + } + + + ret_constr = asn_check_constraints(&asn_DEF_GTP_TEI, &erab_sgnb_notpresent_array[sgnb_notpresent_index].meNB_UL_GTP_TEIDatPDCP.gTP_TEID, errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(&errbuf[0], errbuf_len); + error_string = "Error in constraints for GTP TEID.. Reason = " + error_string; + return false; + } + + ret_constr = asn_check_constraints(&asn_DEF_GTPtunnelEndpoint, &erab_sgnb_notpresent_array[sgnb_notpresent_index].meNB_UL_GTP_TEIDatPDCP, errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(&errbuf[0], errbuf_len); + error_string = "Error in constraints for GTP tunnel endpoint .. Reason = " + error_string; + return false; + } + + + ret_constr = asn_check_constraints(&asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent, &erab_sgnb_notpresent_array[sgnb_notpresent_index], errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(&errbuf[0], errbuf_len); + error_string = "Error in constraints for E_RABS_ToBeAdded_SgNBAddReq_SgNBPDCPnotpresent.. Reason = " + error_string; + return false; + } + + + /* Force all optional parameters that are not set to NULL */ + erab_sgnb_notpresent_array[sgnb_notpresent_index].uL_Configuration = 0; + erab_sgnb_notpresent_array[sgnb_notpresent_index].secondary_meNB_UL_GTP_TEIDatPDCP = 0; + + + erab_item->resource_configuration.choice.sgNBPDCPnotpresent = &erab_sgnb_notpresent_array[sgnb_notpresent_index]; ; + sgnb_notpresent_index ++; + } + else{ + continue; + } + + // check constraint + int ret_constr = asn_check_constraints(&asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs, &erab_array[i], errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(&errbuf[0], errbuf_len); + error_string = "Error in constraints for E_RABS_ToBeAdded_SgNBAddReq_ItemIEs.. Reason = " + error_string; + return false; + } + + ASN_SEQUENCE_ADD(erabs_toadd_list, &erab_array[i]); + + } + + return true; + +} + + +bool sgnb_addition_request::get_fields(X2InitiatingMessage_t * init_msg, sgnb_addition_helper & dout){ + + if (init_msg == 0){ + error_string = "Error ! Invalid reference for SgNB Addition Request get_fields"; + return false; + } + + dout.clear(); + int res = 0; + + struct erab_item * eitem; + std::vector *erab_list; + + SgNBAdditionRequest_IEs_t *memb_ptr; + for(int edx = 0; edx < init_msg->value.choice.SgNBAdditionRequest.protocolIEs.list.count; edx++){ + memb_ptr = init_msg->value.choice.SgNBAdditionRequest.protocolIEs.list.array[edx]; + + switch(memb_ptr->id){ + + case (ProtocolIE_ID_id_MeNB_UE_X2AP_ID): + dout.menb_ue_x2ap_id = memb_ptr->value.choice.UE_X2AP_ID; + break; + + case (ProtocolIE_ID_id_SelectedPLMN): + dout.selected_plmn = memb_ptr->value.choice.PLMN_Identity.buf; + dout.selected_plmn_size = memb_ptr->value.choice.PLMN_Identity.size; + break; + + case (ProtocolIE_ID_id_NRUESecurityCapabilities): + dout.encryption_algs = memb_ptr->value.choice.NRUESecurityCapabilities.nRencryptionAlgorithms.buf; + dout.encryption_algs_size = memb_ptr->value.choice.NRUESecurityCapabilities.nRencryptionAlgorithms.size; + dout.encryption_algs_unused = memb_ptr->value.choice.NRUESecurityCapabilities.nRencryptionAlgorithms.bits_unused; + + dout.integrity_protection_algs= memb_ptr->value.choice.NRUESecurityCapabilities.nRintegrityProtectionAlgorithms.buf; + dout.integrity_protection_algs_size = memb_ptr->value.choice.NRUESecurityCapabilities.nRintegrityProtectionAlgorithms.size; + dout.integrity_protection_algs_unused = memb_ptr->value.choice.NRUESecurityCapabilities.nRintegrityProtectionAlgorithms.bits_unused; + + break; + + case (ProtocolIE_ID_id_SgNBSecurityKey): + dout.sgnb_security_key = memb_ptr->value.choice.SgNBSecurityKey.buf; + dout.sgnb_security_key_size = memb_ptr->value.choice.SgNBSecurityKey.size; + dout.sgnb_security_key_unused = memb_ptr->value.choice.SgNBSecurityKey.bits_unused; + + break; + + case (ProtocolIE_ID_id_SgNBUEAggregateMaximumBitRate): + res = asn_INTEGER2long(&(memb_ptr->value.choice.UEAggregateMaximumBitRate.uEaggregateMaximumBitRateDownlink), &dout.bit_rate_max_dn ); + if (res == -1){ + error_string = "Error converting uEaggregateMaximumBitRateDownlink "; + return false; + } + + res = asn_INTEGER2long(&(memb_ptr->value.choice.UEAggregateMaximumBitRate.uEaggregateMaximumBitRateUplink), &dout.bit_rate_max_up ); + if (res == -1){ + error_string = "Error converting uEaggregateMaximumBitRateUplink "; + return false; + } + + + break; + + case (ProtocolIE_ID_id_MeNBtoSgNBContainer): + dout.menb_sgnb_container = memb_ptr->value.choice.MeNBtoSgNBContainer.buf; + dout.menb_sgnb_container_size = memb_ptr->value.choice.MeNBtoSgNBContainer.size; + break; + + case (ProtocolIE_ID_id_SgNB_UE_X2AP_ID): + dout.sgnb_ue_x2ap_id = memb_ptr->value.choice.SgNB_UE_X2AP_ID; + break; + + case (ProtocolIE_ID_id_SubscriberProfileIDforRFP): + //sgnb->subscriberprofileidforrfp = memb_ptr->value.choice.SubscriberProfileIDforRFP; + break; + + case (ProtocolIE_ID_id_MeNBCell_ID): + + dout.eutran_identifier = memb_ptr->value.choice.ECGI.eUTRANcellIdentifier.buf; + dout.eutran_identifier_size = memb_ptr->value.choice.ECGI.eUTRANcellIdentifier.size; + dout.eutran_identifier_unused = memb_ptr->value.choice.ECGI.eUTRANcellIdentifier.bits_unused; + + dout.plmn_identity = memb_ptr->value.choice.ECGI.pLMN_Identity.buf; + dout.plmn_identity_size = memb_ptr->value.choice.ECGI.pLMN_Identity.size; + break; + + case (ProtocolIE_ID_id_E_RABs_ToBeAdded_SgNBAddReqList): + + erab_list = & dout.erab_list; + + for(int erabs=0; erabs < memb_ptr->value.choice.E_RABs_ToBeAdded_SgNBAddReqList.list.count;erabs++){ + E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_t * erab_item_ie = (E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_t *)memb_ptr->value.choice.E_RABs_ToBeAdded_SgNBAddReqList.list.array[erabs]; + + erab_list->emplace_back(); + eitem = &(*erab_list)[erabs]; + + //erab_item *eitem = (erab_item*)calloc(1, sizeof(erab_item)); + + eitem->drb_id = erab_item_ie->value.choice.E_RABs_ToBeAdded_SgNBAddReq_Item.drb_ID; + eitem->erab_id = erab_item_ie->value.choice.E_RABs_ToBeAdded_SgNBAddReq_Item.e_RAB_ID; + + eitem->mcg_resources = erab_item_ie->value.choice.E_RABs_ToBeAdded_SgNBAddReq_Item.en_DC_ResourceConfiguration.mCGresources; + eitem->scg_resources = erab_item_ie->value.choice.E_RABs_ToBeAdded_SgNBAddReq_Item.en_DC_ResourceConfiguration.sCGresources; + eitem->pdcp_at_sgnb = erab_item_ie->value.choice.E_RABs_ToBeAdded_SgNBAddReq_Item.en_DC_ResourceConfiguration.pDCPatSgNB; + eitem->sgnb_pdcp_present = erab_item_ie->value.choice.E_RABs_ToBeAdded_SgNBAddReq_Item.resource_configuration.present; + + if(erab_item_ie->value.choice.E_RABs_ToBeAdded_SgNBAddReq_Item.resource_configuration.present == E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration_PR_sgNBPDCPpresent){ + + E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_t *erab_sgnb_present_ie = erab_item_ie->value.choice.E_RABs_ToBeAdded_SgNBAddReq_Item.resource_configuration.choice.sgNBPDCPpresent; + + eitem->sgnb_item.qci = erab_sgnb_present_ie->full_E_RAB_Level_QoS_Parameters.qCI; + eitem->sgnb_item.priority_level = erab_sgnb_present_ie->full_E_RAB_Level_QoS_Parameters.allocationAndRetentionPriority.priorityLevel; + eitem->sgnb_item.pre_emption_capability = erab_sgnb_present_ie->full_E_RAB_Level_QoS_Parameters.allocationAndRetentionPriority.pre_emptionCapability; + eitem->sgnb_item.pre_emption_vulnerability = erab_sgnb_present_ie->full_E_RAB_Level_QoS_Parameters.allocationAndRetentionPriority.pre_emptionVulnerability; + + + eitem->sgnb_item.gtp_tei = erab_sgnb_present_ie->s1_UL_GTPtunnelEndpoint.gTP_TEID.buf; + eitem->sgnb_item.gtp_tei_size = erab_sgnb_present_ie->s1_UL_GTPtunnelEndpoint.gTP_TEID.size; + + eitem->sgnb_item.transport_layer_addr = erab_sgnb_present_ie->s1_UL_GTPtunnelEndpoint.transportLayerAddress.buf; + eitem->sgnb_item.transport_layer_addr_size = erab_sgnb_present_ie->s1_UL_GTPtunnelEndpoint.transportLayerAddress.size; + eitem->sgnb_item.transport_layer_addr_unused = erab_sgnb_present_ie->s1_UL_GTPtunnelEndpoint.transportLayerAddress.bits_unused; + + + } + else if(erab_item_ie->value.choice.E_RABs_ToBeAdded_SgNBAddReq_Item.resource_configuration.present == E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration_PR_sgNBPDCPnotpresent){ + E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_t *erab_sgnb_notpresent_ie = erab_item_ie->value.choice.E_RABs_ToBeAdded_SgNBAddReq_Item.resource_configuration.choice.sgNBPDCPnotpresent; + eitem->sgnb_item.rlc_mode = erab_sgnb_notpresent_ie->rlc_Mode; + eitem->sgnb_item.gtp_tei = erab_sgnb_notpresent_ie->meNB_UL_GTP_TEIDatPDCP.gTP_TEID.buf; + eitem->sgnb_item.gtp_tei_size = erab_sgnb_notpresent_ie->meNB_UL_GTP_TEIDatPDCP.gTP_TEID.size; + eitem->sgnb_item.transport_layer_addr = erab_sgnb_notpresent_ie->meNB_UL_GTP_TEIDatPDCP.transportLayerAddress.buf; + eitem->sgnb_item.transport_layer_addr_size = erab_sgnb_notpresent_ie->meNB_UL_GTP_TEIDatPDCP.transportLayerAddress.size; + eitem->sgnb_item.transport_layer_addr_unused = erab_sgnb_notpresent_ie->meNB_UL_GTP_TEIDatPDCP.transportLayerAddress.bits_unused; + + eitem->sgnb_item.qci = erab_sgnb_notpresent_ie->requested_SCG_E_RAB_Level_QoS_Parameters.qCI; + eitem->sgnb_item.pre_emption_capability = erab_sgnb_notpresent_ie->requested_SCG_E_RAB_Level_QoS_Parameters.allocationAndRetentionPriority.pre_emptionCapability; + eitem->sgnb_item.pre_emption_vulnerability = erab_sgnb_notpresent_ie->requested_SCG_E_RAB_Level_QoS_Parameters.allocationAndRetentionPriority.pre_emptionVulnerability; + eitem->sgnb_item.priority_level = erab_sgnb_notpresent_ie->requested_SCG_E_RAB_Level_QoS_Parameters.allocationAndRetentionPriority.priorityLevel; + + } + else{ + mdclog_write(MDCLOG_ERR, "Error :: %s, %d :: E-RAB does not have sgNBPDCP present/not present set flag", __FILE__, __LINE__); + return false; + } + + } + + break; + + default: + break; + + } + + } + return true; +} diff --git a/src/X2AP/sgnb_addition_request.hpp b/src/X2AP/sgnb_addition_request.hpp new file mode 100644 index 0000000..952962e --- /dev/null +++ b/src/X2AP/sgnb_addition_request.hpp @@ -0,0 +1,81 @@ +/* +================================================================================== + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ +/* + * ric_indication.h + * + * Created on: Aug 14, 2019 + * Author: Ashwin Sridharan + */ + +#ifndef SGNB_ADDITION_REQUEST_ +#define SGNB_ADDITION_REQUEST_ + + +#include +#include +#include +#include +#include + + +#include +#include +#include +#include +#include +#include +#include +#include + + +#define NUM_SGNB_ADDITION_REQUEST_IES 8 +#define INITIAL_SIZE 4 + +class sgnb_addition_request { +public: + sgnb_addition_request(void); + ~sgnb_addition_request(void); + + bool encode_sgnb_addition_request(unsigned char *, size_t *, sgnb_addition_helper &); + bool set_fields(X2InitiatingMessage_t *, sgnb_addition_helper &); + bool get_fields(X2InitiatingMessage_t * ,sgnb_addition_helper &); + std::string get_error(void) const {return error_string; }; + +private: + + X2AP_PDU_t * x2ap_pdu_obj; + X2InitiatingMessage_t * initMsg; + SgNBAdditionRequest_IEs_t * IE_array; + + E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_t * erab_array; + size_t erab_array_size; + + E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent_t * erab_sgnb_present_array; + E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent_t * erab_sgnb_notpresent_array; + size_t erab_sgnb_present_array_size ; + size_t erab_sgnb_notpresent_array_size; + + + + std::string error_string; + char errbuf[128]; + size_t errbuf_len = 128; +}; + + +#endif diff --git a/src/X2AP/sgnb_addition_response.cc b/src/X2AP/sgnb_addition_response.cc new file mode 100644 index 0000000..d64f620 --- /dev/null +++ b/src/X2AP/sgnb_addition_response.cc @@ -0,0 +1,434 @@ +/* +================================================================================== + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ +/* + * sgnb_addition_response.cc + * + * Created on: Aug 22, 2019 + * Author: sjana + */ + +#include + +sgnb_addition_response::sgnb_addition_response(void ) { + + + x2ap_pdu_obj = 0; + x2ap_pdu_obj = (X2AP_PDU_t * )calloc(1, sizeof(X2AP_PDU_t)); + assert(x2ap_pdu_obj != 0); + + successMsg = 0; + successMsg = (X2SuccessfulOutcome_t * )calloc(1, sizeof(X2SuccessfulOutcome_t)); + assert(successMsg != 0); + + unsuccessMsg = 0; + unsuccessMsg = (X2UnsuccessfulOutcome_t * )calloc(1, sizeof(X2UnsuccessfulOutcome_t)); + assert(unsuccessMsg != 0); + + IE_array = 0; + IE_array = (SgNBAdditionRequestAcknowledge_IEs_t *)calloc(NUM_SGNB_ADDITION_RESPONSE_ACKNOWLEDGE_IES, sizeof(SgNBAdditionRequestAcknowledge_IEs_t)); + assert(IE_array != 0); + + IE_reject_array = 0; + IE_reject_array = (SgNBAdditionRequestReject_IEs_t *)calloc(NUM_SGNB_ADDITION_RESPONSE_FAILURE_IES, sizeof(SgNBAdditionRequestReject_IEs_t)); + assert(IE_reject_array != 0); + + + erab_admit_array = 0; + erab_admit_array = (E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_t * ) calloc(INITIAL_SIZE, sizeof(E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_t)); + assert(erab_admit_array != 0); + erab_admit_array_size = INITIAL_SIZE; + + + erab_sgnb_present_array = 0; + erab_sgnb_present_array = (E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_t *) calloc(INITIAL_SIZE, sizeof(E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_t)); + assert(erab_sgnb_present_array != 0); + erab_sgnb_present_array_size = INITIAL_SIZE; + + erab_sgnb_notpresent_array = 0; + erab_sgnb_notpresent_array = (E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_t *) calloc(INITIAL_SIZE, sizeof(E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_t)); + assert(erab_sgnb_notpresent_array != 0); + erab_sgnb_notpresent_array_size = INITIAL_SIZE; + + SgNBAdditionRequestAcknowledge_t * sgnb_ack = &(successMsg->value.choice.SgNBAdditionRequestAcknowledge); + for(int i = 0; i < NUM_SGNB_ADDITION_RESPONSE_ACKNOWLEDGE_IES; i++){ + ASN_SEQUENCE_ADD(&(sgnb_ack->protocolIEs), &(IE_array[i])); + } + + + SgNBAdditionRequestReject_t * sgnb_reject = &(unsuccessMsg->value.choice.SgNBAdditionRequestReject); + for(int i = 0; i < NUM_SGNB_ADDITION_RESPONSE_FAILURE_IES; i++){ + ASN_SEQUENCE_ADD(&(sgnb_reject->protocolIEs), &(IE_reject_array[i])); + } + +} + +sgnb_addition_response::~sgnb_addition_response(void){ + + mdclog_write(MDCLOG_INFO, "Freeing X2AP SgNB Addition Response object memory"); + + E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_t * erabs_toadd_list = &(IE_array[3].value.choice.E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList); + for(int i = 0; i < erabs_toadd_list->list.size; i++){ + erabs_toadd_list->list.array[i] = 0; + } + if (erabs_toadd_list->list.size > 0){ + free(erabs_toadd_list->list.array); + erabs_toadd_list->list.array = 0; + erabs_toadd_list->list.size = 0; + erabs_toadd_list->list.count= 0; + } + + free(erab_sgnb_present_array); + free(erab_sgnb_notpresent_array); + free(erab_admit_array); + + SgNBAdditionRequestAcknowledge_t *sgnb_ack = &(successMsg->value.choice.SgNBAdditionRequestAcknowledge); + for(int i = 0; i < sgnb_ack->protocolIEs.list.size; i++){ + sgnb_ack->protocolIEs.list.array[i] = 0; + } + + if (sgnb_ack->protocolIEs.list.size > 0){ + free(sgnb_ack->protocolIEs.list.array); + sgnb_ack->protocolIEs.list.array = 0; + sgnb_ack->protocolIEs.list.size = 0; + } + + SgNBAdditionRequestReject_t *sgnb_reject = &(unsuccessMsg->value.choice.SgNBAdditionRequestReject); + for(int i = 0; i < sgnb_reject->protocolIEs.list.size; i++){ + sgnb_reject->protocolIEs.list.array[i] = 0; + } + + if (sgnb_reject->protocolIEs.list.size > 0){ + free(sgnb_reject->protocolIEs.list.array); + sgnb_reject->protocolIEs.list.array = 0; + sgnb_reject->protocolIEs.list.size = 0; + } + + + free(IE_array); + free(IE_reject_array); + free(successMsg); + free(unsuccessMsg); + + x2ap_pdu_obj->choice.initiatingMessage = NULL; + x2ap_pdu_obj->present = X2AP_PDU_PR_NOTHING; + + ASN_STRUCT_FREE(asn_DEF_X2AP_PDU, x2ap_pdu_obj); + + mdclog_write(MDCLOG_INFO, "Freed X2AP SgNB Addition Response object memory"); +} + +bool sgnb_addition_response::set_fields(X2UnsuccessfulOutcome_t * unsuccessMsg, sgnb_addition_helper &sgnb_data){ + + unsigned ie_index = 0; + + if (unsuccessMsg == 0){ + error_string = "Invalid reference for X2AP Sgnb Addition Reject message in set_fields"; + return false; + } + SgNBAdditionRequestReject_IEs_t *ies_sgnb_add_reject; + + ie_index = 0; + ies_sgnb_add_reject= &IE_reject_array[ie_index]; + ies_sgnb_add_reject->criticality = Criticality_reject; + ies_sgnb_add_reject->id = ProtocolIE_ID_id_MeNB_UE_X2AP_ID; + ies_sgnb_add_reject->value.present = SgNBAdditionRequestReject_IEs__value_PR_UE_X2AP_ID; + ies_sgnb_add_reject->value.choice.UE_X2AP_ID = sgnb_data.menb_ue_x2ap_id; + + + ie_index = 1; + ies_sgnb_add_reject= &IE_reject_array[ie_index]; + ies_sgnb_add_reject->criticality = Criticality_reject; + ies_sgnb_add_reject->id = ProtocolIE_ID_id_SgNB_UE_X2AP_ID; + ies_sgnb_add_reject->value.present = SgNBAdditionRequestReject_IEs__value_PR_SgNB_UE_X2AP_ID; + ies_sgnb_add_reject->value.choice.SgNB_UE_X2AP_ID = sgnb_data.sgnb_ue_x2ap_id; + + + ie_index = 2; + ies_sgnb_add_reject= &IE_reject_array[ie_index]; + ies_sgnb_add_reject->criticality = Criticality_reject; + ies_sgnb_add_reject->id = ProtocolIE_ID_id_Cause; + ies_sgnb_add_reject->value.present = SgNBAdditionRequestReject_IEs__value_PR_Cause; + Cause_t *caus = &ies_sgnb_add_reject->value.choice.Cause; + + switch(sgnb_data.cause) + { + case Cause_PR_misc: //Misc + caus->present = Cause_PR_misc; + caus->choice.misc = sgnb_data.cause_desc; + break; + case Cause_PR_radioNetwork: //radio network + caus->present = Cause_PR_radioNetwork; + caus->choice.radioNetwork = sgnb_data.cause_desc; + break; + case Cause_PR_protocol : //protocol + caus->present = Cause_PR_protocol; + caus->choice.protocol = sgnb_data.cause_desc; + break; + case Cause_PR_transport: //transport + caus->present = Cause_PR_transport; + caus->choice.transport = sgnb_data.cause_desc; + break; + + default: + caus->present = Cause_PR_NOTHING; + break; + } + + return true; + +} + + +bool sgnb_addition_response::set_fields(X2SuccessfulOutcome_t * successMsg, sgnb_addition_helper &sgnb_data){ + + unsigned ie_index = 0; + + if (successMsg == 0){ + error_string = "Invalid reference for X2AP Sgnb Addition Acknowledge message in set_fields"; + return false; + } + + SgNBAdditionRequestAcknowledge_IEs_t *ies_sgnb_add_ack; + + ie_index = 0; + ies_sgnb_add_ack= &IE_array[ie_index]; + ies_sgnb_add_ack->criticality = Criticality_reject; + ies_sgnb_add_ack->id = ProtocolIE_ID_id_MeNB_UE_X2AP_ID; + ies_sgnb_add_ack->value.present = SgNBAdditionRequestAcknowledge_IEs__value_PR_UE_X2AP_ID; + ies_sgnb_add_ack->value.choice.UE_X2AP_ID = sgnb_data.menb_ue_x2ap_id; + + + ie_index = 1; + ies_sgnb_add_ack= &IE_array[ie_index]; + ies_sgnb_add_ack->criticality = Criticality_reject; + ies_sgnb_add_ack->id = ProtocolIE_ID_id_SgNB_UE_X2AP_ID; + ies_sgnb_add_ack->value.present = SgNBAdditionRequestAcknowledge_IEs__value_PR_SgNB_UE_X2AP_ID; + ies_sgnb_add_ack->value.choice.SgNB_UE_X2AP_ID = sgnb_data.sgnb_ue_x2ap_id; + + ie_index = 2; + ies_sgnb_add_ack= &IE_array[ie_index]; + ies_sgnb_add_ack->criticality = Criticality_reject; + ies_sgnb_add_ack->id = ProtocolIE_ID_id_SgNBtoMeNBContainer; + ies_sgnb_add_ack->value.present = SgNBAdditionRequestAcknowledge_IEs__value_PR_SgNBtoMeNBContainer; + SgNBtoMeNBContainer_t *container = &ies_sgnb_add_ack->value.choice.SgNBtoMeNBContainer; + container->buf = sgnb_data.menb_sgnb_container; + container->size = sgnb_data.menb_sgnb_container_size; + + ie_index = 3; + ies_sgnb_add_ack = &IE_array[ie_index]; + ies_sgnb_add_ack->criticality = Criticality_reject; + ies_sgnb_add_ack->id = ProtocolIE_ID_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList; + ies_sgnb_add_ack->value.present = SgNBAdditionRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList; + E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_t * erabs_toadd_list = &(ies_sgnb_add_ack->value.choice.E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList); + + + int lcount = sgnb_data.erab_list.size(); + //std::cout <<"Adding " << lcount << " erabs in response" << std::endl; + + //resize empty array in constructor + if (lcount >= erab_admit_array_size){ + erab_admit_array_size = 2*lcount; + + E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_t * new_ref = 0; + new_ref = (E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_t *)realloc(erab_admit_array, erab_admit_array_size * sizeof(E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_t)); + assert(new_ref != 0); + erab_admit_array = new_ref; + + erab_sgnb_present_array_size = 2 * lcount; + E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_t * new_present = 0; + new_present = (E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_t *)realloc(erab_sgnb_present_array, erab_sgnb_present_array_size * sizeof(E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_t )); + assert(new_present != 0); + erab_sgnb_present_array = new_present; + + erab_sgnb_notpresent_array_size = 2 * lcount; + E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_t * new_notpresent = 0; + new_notpresent = (E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_t *)realloc(erab_sgnb_notpresent_array, erab_sgnb_notpresent_array_size * sizeof(E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_t )); + assert(new_notpresent != 0); + erab_sgnb_notpresent_array = new_notpresent; + } + + std::vector * ref_erab_input = &(sgnb_data.erab_list); + erabs_toadd_list->list.count = 0; + + int sgnb_present_index = 0; + int sgnb_notpresent_index = 0; + + for(unsigned int i = 0; i < lcount; i++){ + + erab_admit_array[i].id = ProtocolIE_ID_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item ; + erab_admit_array[i].criticality = Criticality_ignore; + erab_admit_array[i].value.present = E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value_PR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item; + + E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_t * erab_item = &(erab_admit_array[i].value.choice.E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item); + + erab_item->e_RAB_ID = (*ref_erab_input)[i].erab_id; + erab_item->en_DC_ResourceConfiguration.pDCPatSgNB = (*ref_erab_input)[i].pdcp_at_sgnb; + erab_item->en_DC_ResourceConfiguration.mCGresources = (*ref_erab_input)[i].mcg_resources; + erab_item->en_DC_ResourceConfiguration.sCGresources = (*ref_erab_input)[i].scg_resources; + + + erab_item->resource_configuration.present = (E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration_PR)(*ref_erab_input)[i].sgnb_pdcp_present; + if( erab_item->resource_configuration.present == E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration_PR_sgNBPDCPpresent){ + + erab_sgnb_present_array[sgnb_present_index].s1_DL_GTPtunnelEndpoint.transportLayerAddress.buf = (*ref_erab_input)[i].sgnb_item.transport_layer_addr; + erab_sgnb_present_array[sgnb_present_index].s1_DL_GTPtunnelEndpoint.transportLayerAddress.size = (*ref_erab_input)[i].sgnb_item.transport_layer_addr_size; + erab_sgnb_present_array[sgnb_present_index].s1_DL_GTPtunnelEndpoint.transportLayerAddress.bits_unused = (*ref_erab_input)[i].sgnb_item.transport_layer_addr_unused; + + erab_sgnb_present_array[sgnb_present_index].s1_DL_GTPtunnelEndpoint.gTP_TEID.buf = (*ref_erab_input)[i].sgnb_item.gtp_tei; + erab_sgnb_present_array[sgnb_present_index].s1_DL_GTPtunnelEndpoint.gTP_TEID.size = (*ref_erab_input)[i].sgnb_item.gtp_tei_size; + + /* Force all optional parameters that are not set to NULL */ + erab_sgnb_present_array[sgnb_present_index].sgNB_UL_GTP_TEIDatPDCP = NULL; + + /* validate constraints ..*/ + int ret_constr; + ret_constr = asn_check_constraints(&asn_DEF_GTP_TEI, &erab_sgnb_present_array[sgnb_present_index].s1_DL_GTPtunnelEndpoint.gTP_TEID, errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(&errbuf[0], errbuf_len); + error_string = "Error in constraints for GTP TEID.. Reason = " + error_string; + return false; + } + + ret_constr = asn_check_constraints(&asn_DEF_GTPtunnelEndpoint, &erab_sgnb_present_array[sgnb_present_index].s1_DL_GTPtunnelEndpoint, errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(&errbuf[0], errbuf_len); + error_string = "Error in constraints for GTP tunnel endpoint .. Reason = " + error_string; + return false; + } + + ret_constr = asn_check_constraints(&asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent, &erab_sgnb_present_array[sgnb_present_index], errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(&errbuf[0], errbuf_len); + error_string = "Error in constraints for E_RABS_ToBeAdded_SgNBAddReq_SgNBPDCPpresent.. Reason = " + error_string; + return false; + } + + erab_item->resource_configuration.choice.sgNBPDCPpresent = &erab_sgnb_present_array[sgnb_present_index]; + sgnb_present_index ++; + + } + else if (erab_item->resource_configuration.present == E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration_PR_sgNBPDCPnotpresent){ + + erab_sgnb_notpresent_array[sgnb_notpresent_index].sgNB_DL_GTP_TEIDatSCG.transportLayerAddress.buf = (*ref_erab_input)[i].sgnb_item.transport_layer_addr; + erab_sgnb_notpresent_array[sgnb_notpresent_index].sgNB_DL_GTP_TEIDatSCG.transportLayerAddress.size = (*ref_erab_input)[i].sgnb_item.transport_layer_addr_size; + erab_sgnb_notpresent_array[sgnb_notpresent_index].sgNB_DL_GTP_TEIDatSCG.transportLayerAddress.bits_unused = (*ref_erab_input)[i].sgnb_item.transport_layer_addr_unused; + + erab_sgnb_notpresent_array[sgnb_notpresent_index].sgNB_DL_GTP_TEIDatSCG.gTP_TEID.buf = (unsigned char *)(*ref_erab_input)[i].sgnb_item.gtp_tei; + erab_sgnb_notpresent_array[sgnb_notpresent_index].sgNB_DL_GTP_TEIDatSCG.gTP_TEID.size = (*ref_erab_input)[i].sgnb_item.gtp_tei_size; + + erab_sgnb_notpresent_array[sgnb_notpresent_index].secondary_sgNB_DL_GTP_TEIDatSCG = NULL; + + /* validate constraints ..*/ + int ret_constr; + ret_constr = asn_check_constraints(&asn_DEF_GTPtunnelEndpoint, &erab_sgnb_notpresent_array[sgnb_notpresent_index].sgNB_DL_GTP_TEIDatSCG, errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(&errbuf[0], errbuf_len); + error_string = "Error in constraints for GTP tunnel endpoint .. Reason = " + error_string; + return false; + } + + + ret_constr = asn_check_constraints(&asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent, &erab_sgnb_notpresent_array[sgnb_notpresent_index], errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(&errbuf[0], errbuf_len); + error_string = "Error in constraints for E_RABS_ToBeAdded_SgNBAddReq_SgNBPDCPnotpresent.. Reason = " + error_string; + return false; + } + + erab_item->resource_configuration.choice.sgNBPDCPnotpresent = &erab_sgnb_notpresent_array[sgnb_notpresent_index]; ; + sgnb_notpresent_index ++; + } + else { + std::cerr <<"Could not find a pdcp present or not present flag. not adding erab item .." << std::endl; + continue; + } + + // check constraint + int ret_constr = asn_check_constraints(&asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs, &erab_admit_array[i], errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(&errbuf[0], errbuf_len); + error_string = "Error in constraints for E_RABS_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs.. Reason = " + error_string; + return false; + } + + ASN_SEQUENCE_ADD(erabs_toadd_list, &erab_admit_array[i]); + } + + return true; +} + +bool sgnb_addition_response::encode_sgnb_addition_response(unsigned char* data_buf, size_t *data_size, sgnb_addition_helper &sgnb_data, bool sgnb_response) +{ + + bool res; + if(sgnb_response == true){ + + x2ap_pdu_obj->present = X2AP_PDU_PR_successfulOutcome; + x2ap_pdu_obj->choice.successfulOutcome = successMsg; + + successMsg->procedureCode = ProcedureCode_id_sgNBAdditionPreparation; + successMsg->criticality = Criticality_ignore; + successMsg->value.present = X2SuccessfulOutcome__value_PR_SgNBAdditionRequestAcknowledge; + + res = set_fields(successMsg, sgnb_data); + + } else { + + x2ap_pdu_obj->present = X2AP_PDU_PR_unsuccessfulOutcome; + x2ap_pdu_obj->choice.unsuccessfulOutcome = unsuccessMsg; + + + unsuccessMsg->procedureCode = ProcedureCode_id_sgNBAdditionPreparation; + unsuccessMsg->criticality = Criticality_ignore; + unsuccessMsg->value.present = X2UnsuccessfulOutcome__value_PR_SgNBAdditionRequestReject; + + res = set_fields(unsuccessMsg, sgnb_data); + } + + if (!res){ + return false; + } + int ret_constr = asn_check_constraints(&asn_DEF_X2AP_PDU, x2ap_pdu_obj, errbuf, &errbuf_len); + if(ret_constr){ + error_string.assign(&errbuf[0], errbuf_len); + error_string = "Error encoding X2AP Sgnb Addition Response message. Reason = " + error_string; + return false; + } + + //xer_fprint(stdout, &asn_DEF_X2AP_PDU, x2ap_pdu_obj); + + asn_enc_rval_t retval = asn_encode_to_buffer(0, ATS_ALIGNED_BASIC_PER, &asn_DEF_X2AP_PDU, x2ap_pdu_obj, data_buf, *data_size); + if(retval.encoded == -1){ + error_string.assign(strerror(errno)); + return false; + } + + else { + if(*data_size < retval.encoded){ + std::stringstream ss; + ss <<"Error encoding SgNB Addition Request Response. Reason = encoded pdu size " << retval.encoded << " exceeds buffer size " << *data_size << std::endl; + error_string = ss.str(); + return false; + } + } + + *data_size = retval.encoded; + return true; +} + + diff --git a/src/X2AP/sgnb_addition_response.hpp b/src/X2AP/sgnb_addition_response.hpp new file mode 100644 index 0000000..b875360 --- /dev/null +++ b/src/X2AP/sgnb_addition_response.hpp @@ -0,0 +1,88 @@ +/* +================================================================================== + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ +/* + * ric_indication.h + * + * Created on: Aug 14, 2019 + * Author: Ashwin Sridharan + */ + +#ifndef SGNB_ADDITION_RESPONSE_ +#define SGNB_ADDITION_RESPONSE_ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define NUM_SGNB_ADDITION_RESPONSE_ACKNOWLEDGE_IES 4 +#define NUM_SGNB_ADDITION_RESPONSE_FAILURE_IES 3 + +#define INITIAL_SIZE 4 + +class sgnb_addition_response { +public: + sgnb_addition_response(); + ~sgnb_addition_response(void); + + bool encode_sgnb_addition_response(unsigned char *, size_t *, sgnb_addition_helper &, bool); + + bool set_fields(X2SuccessfulOutcome_t *, sgnb_addition_helper &); + bool get_fields(X2SuccessfulOutcome_t * ,sgnb_addition_helper &); + + bool set_fields(X2UnsuccessfulOutcome_t *, sgnb_addition_helper &); + bool get_fields(X2UnsuccessfulOutcome_t * ,sgnb_addition_helper &); + + std::string get_error(void) const {return error_string; }; + +private: + + bool sgnb_response; + X2AP_PDU_t * x2ap_pdu_obj; + X2SuccessfulOutcome_t * successMsg; + X2UnsuccessfulOutcome_t * unsuccessMsg; + + SgNBAdditionRequestAcknowledge_IEs_t * IE_array; + SgNBAdditionRequestReject_IEs_t * IE_reject_array; + + E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_t * erab_admit_array; + size_t erab_admit_array_size; + + E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent_t * erab_sgnb_present_array; + E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent_t * erab_sgnb_notpresent_array; + size_t erab_sgnb_present_array_size ; + size_t erab_sgnb_notpresent_array_size; + + std::string error_string; + char errbuf[128]; + size_t errbuf_len = 128; +}; + +#endif diff --git a/src/adm-ctrl-xapp.cc b/src/adm-ctrl-xapp.cc new file mode 100644 index 0000000..f9994a3 --- /dev/null +++ b/src/adm-ctrl-xapp.cc @@ -0,0 +1,358 @@ +/* +================================================================================== + + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ +/* Author : Ashwin Sridharan + Date : Feb 2019 +*/ + +#include "adm-ctrl-xapp.hpp" + +bool report_mode_only = true; +static int RunProg = 1; // keep loop running + +// list of plugins +typedef std::vector > plugin_list; +plugin_list Plugins; +std::map plugin_rmr_map; + + +bool add_subscription(SubscriptionHandler & sub_handler, XaPP * xapp_ref, subscription_helper & he, subscription_response_helper he_resp, std::string & gNodeB){ + unsigned char node_buffer[32]; + std::copy(gNodeB.begin(), gNodeB.end(), node_buffer); + node_buffer[gNodeB.length()] = '\0'; + bool res = sub_handler.RequestSubscription(he, he_resp, RIC_SUB_REQ, std::bind(static_cast( &XaPP::Send), xapp_ref, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, node_buffer)); + return res; +}; + + +bool delete_subscription(SubscriptionHandler & sub_handler, XaPP * xapp_ref, subscription_helper & he, subscription_response_helper he_resp, std::string & gNodeB){ + unsigned char node_buffer[32]; + std::copy(gNodeB.begin(), gNodeB.end(), node_buffer); + node_buffer[gNodeB.length()] = '\0'; + + bool res = sub_handler.RequestSubscriptionDelete(he, he_resp, RIC_SUB_DEL_REQ, std::bind(static_cast( &XaPP::Send), xapp_ref, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, node_buffer)); + return res; +}; + + +void policy_handler(int message_type, const char * message, int message_len, std::string & response, bool set){ + auto it = plugin_rmr_map.find(message_type); + bool res; + if (it != plugin_rmr_map.end()){ + if (set){ + res = it->second->setPolicy(message, message_len, response); + if (res){ + mdclog_write(MDCLOG_INFO, "A1 POLICY SET :: Successfully set A1 Policy\n"); + } + else{ + mdclog_write(MDCLOG_ERR, "Error :: A1 POLICY SET %s, %d . Unable to set policy. Reason = %s\n", __FILE__, __LINE__, response.c_str()); + } + + } + else{ + res = it->second->getPolicy(message, message_len, response); + if (res){ + mdclog_write(MDCLOG_INFO, "A1 POLICY GET : Successfully retreived A1 Policy\n"); + } + else{ + mdclog_write(MDCLOG_ERR, "Error :: A1 POLICY GET %s, %d . Unable to get policy. Reason = %s\n", __FILE__, __LINE__, response.c_str()); + } + + } + } + else{ + response = "{\"status\":\"FAIL\", \"message\":\"Could not find plugin associated with RMR message type = " + std::to_string(message_type) + "\"}"; + } +}; + + +void metrics_collector(std::string ves_url, plugin_list * plugins, unsigned int interval){ + + // Instantiate the ves collector + curl_interface curl_obj(ves_url); + std::string metrics_response; + int res; + while(RunProg){ + for(unsigned int i = 0; i < plugins->size(); i++){ + res = (*plugins)[i].get()->getMetrics(metrics_response); + if (res != 0){ + mdclog_write(MDCLOG_WARN, "VES :: Warning : %s, %d: could not get metrics from plugin %s. Reason = %s", __FILE__, __LINE__, (*plugins)[i].get()->getName().c_str(), metrics_response.c_str()); + } + else{ + res = curl_obj.post_metrics(metrics_response); + if (!res){ + mdclog_write(MDCLOG_WARN, "VES :: Warning : %s, %d , could not post metrics to %s. Reason = %s\n", __FILE__, __LINE__, ves_url.c_str(), curl_obj.getError().c_str()); + } + else{ + mdclog_write(MDCLOG_INFO, "VES :: Successfully posted metrics %s to VES collector\n", metrics_response.c_str()); + } + } + } + sleep(interval); + } + std::cout <<"Stopped metrics collector/reporter .." << std::endl; +}; + + +void EndProgram(int signum){ + std::cout <<"Signal received. Stopping program ....." << std::endl; + RunProg = 0; +} + +void msg_error(rmr_mbuf_t *message){ + mdclog_write(MDCLOG_ERR, "Error: %s, %d Could not send RMR message of length %d and type %d, Reason %s", __FILE__, __LINE__, message->len, message->mtype, strerror(errno) ); +}; + + +int main(int argc, char *argv[]){ + + // initially set log level to INFO + init_logger("XaPP", MDCLOG_INFO); + + configuration my_config; + + // set config variables from environment + // used when deploying via start-up script + get_environment_config(my_config); + + // over-ride with any command line variables if + // provided + get_command_line_config(argc, argv, my_config); + + std::unique_ptr my_xapp; + + + // Reset log level based on configuration + init_logger(my_config.name, static_cast(my_config.log_level)); + + if (my_config.gNodeB_list.size() == 0){ + mdclog_write(MDCLOG_WARN, "WARNING : gNodeB not set for subscription. Subscription MAY FAIL"); + } + + if (my_config.operating_mode == "CONTROL"){ + report_mode_only = false; + } + else{ + report_mode_only = true; + } + + // Finished passing command line/environment arguments + //============================================================= + + // instantiate xapp object + if(my_config.num_threads >= 1){ + mdclog_write(MDCLOG_INFO, "XaPP listener threads specified = %d", my_config.num_threads); + // Create XaPP that starts with specified number of threads + my_xapp = std::make_unique(my_config.name, my_config.port, 1024, my_config.num_threads); + } + else{ + mdclog_write(MDCLOG_INFO,"XaPP listener threads specified = auto"); + //Let XaPP pick threads based on hardware + my_xapp = std::make_unique(my_config.name, my_config.port, 1024); + } + + + mdclog_write(MDCLOG_INFO, "XaPP name specified = %s", my_config.name); + mdclog_write(MDCLOG_INFO, "XaPP port specified = %s", my_config.port); + + + // Instantiate admission logic handler + Plugins.emplace_back(std::make_unique(my_config.a1_schema_file, my_config.sample_file, my_config.ves_schema_file, 1)); + + // Add reference to plugin list . We add twice (once for set policy and once for get policy ids) + // Plugin list is used by policy handler and metrics collector + plugin_rmr_map.insert(std::pair(DC_ADM_INT_CONTROL, Plugins[0].get())); + plugin_rmr_map.insert(std::pair(DC_ADM_GET_POLICY, Plugins[0].get())); + + // instantiate curl object for ves + std::thread metrics_thread(metrics_collector, my_config.ves_collector_url, &Plugins, my_config.measurement_interval); + + + // Instantiate subscription handler + SubscriptionHandler sub_handler; + + // Instantiate message handlers for RMR + // (one for each thread) and registrer + // subscription and admission handlers + + std::vector > message_procs; + for(int i = 0; i < my_config.num_threads; i++){ + std::unique_ptr mp_handler = std::make_unique (); + mp_handler.get()->register_subscription_handler(& sub_handler); + mp_handler.get()->register_protector(dynamic_cast(Plugins[0].get())->get_protector_instance(0)); + mp_handler.get()->register_policy_handler (& policy_handler); + message_procs.push_back(std::move(mp_handler)); + } + + + // Start the listening loops + std::vector thread_ids(my_config.num_threads); + unsigned int i = 0; + for(auto &e: message_procs){ + thread_ids[i] = (*my_xapp).StartThread(*(e.get()), msg_error); + i++; + }; + + mdclog_write(MDCLOG_INFO, "xAPP is UP and Listening on RMR. ...\n"); + mdclog_write(MDCLOG_INFO, "Number of message processors = %lu", message_procs.size()); + + //====================================================== + // sgnb Subscription spec + + int request_id = 2; // will be over-written by subscription handler + int req_seq = 1; + int function_id = 0; + int action_id = 4; + int action_type = report_mode_only ? 0:1; + + int message_type = 1; + int procedure_code = 27; + std::string egnb_id = "Testgnb"; + std::string plmn_id = "Testplmn"; + + unsigned char event_buf[128]; + size_t event_buf_len = 128; + bool res; + + + e2sm_event_trigger_helper trigger_data; + e2sm_event_trigger event_trigger; + + trigger_data.egNB_id = egnb_id; + trigger_data.plmn_id = plmn_id; + trigger_data.egNB_id_type = 2; + trigger_data.interface_direction = 1; + trigger_data.procedure_code = procedure_code; + trigger_data.message_type = message_type; + res = event_trigger.encode_event_trigger(&event_buf[0], &event_buf_len, trigger_data); + if (!res){ + mdclog_write(MDCLOG_ERR, "Error : %s, %d: Could not encode subscription Request. Reason = %s\n", __FILE__, __LINE__, event_trigger.get_error().c_str()); + exit(0); + } + + + subscription_helper sgnb_add_subscr_req; + subscription_response_helper subscr_response; + + sgnb_add_subscr_req.clear(); + sgnb_add_subscr_req.set_request(request_id, req_seq); + sgnb_add_subscr_req.set_function_id(function_id); + sgnb_add_subscr_req.add_action(action_id, action_type); + + + sgnb_add_subscr_req.set_event_def(&event_buf[0], event_buf_len); + mdclog_write(MDCLOG_INFO, "Encoded event trigger definition into PDU of size %lu bytes\n", event_buf_len); + + //====================================================== + // Purely for testing purposes ... write subscription ASN binary to file + // FILE *pfile; + // pfile = fopen("event_trigger.pr", "wb"); + // fwrite(event_buf, 1, event_buf_len, pfile); + // fclose(pfile); + //====================================================== + + + // keep sending subscription request till successfull for all gnodebs ? + auto it = my_config.gNodeB_list.begin(); + while(my_config.gNodeB_list.size() > 0 && RunProg){ + int attempt = 0; + res = false; + + while(!res){ + mdclog_write(MDCLOG_INFO, "Sending subscription request for %s ... Attempt number = %d\n", (*it).c_str(), attempt); + res = add_subscription(sub_handler, my_xapp.get(), sgnb_add_subscr_req, subscr_response, *it); + if (!res){ + sleep(5); + }; + attempt ++; + if (attempt > MAX_SUBSCRIPTION_ATTEMPTS){ + break; + } + } + + if(res){ + mdclog_write(MDCLOG_INFO, "Successfully subscribed for gNodeB %s", (*it).c_str()); + // remove node from list, + // move to next gnobde + it = my_config.gNodeB_list.erase(it); + } + + if (it == my_config.gNodeB_list.end()){ + it = my_config.gNodeB_list.begin(); + } + + } + + + std::cout <<"SUBSCRIPTION REQUEST :: Successfully subscribed to events for all gNodeBs " << std::endl; + + //Register signal handler to stop + signal(SIGINT, EndProgram); + signal(SIGTERM, EndProgram); + + + // Purely for testing purposes .... + // If in test mode, we wait an interval and then send delete subscription request for each gNodeB + if(my_config.test_mode){ + std::cout <<"====================== " << std::endl; + std::cout <<"WE ARE IN TEST MODE. " << std::endl; + std::cout <<"====================== " << std::endl; + std::cout <<"WILL SEND SUBSCRIPTION DELETE REQUEST AFTER " << my_config.measurement_interval << " SECONDS " << std::endl; + sleep(my_config.measurement_interval); + res = false; + // keep sending subscription delete request till successfull ? + int attempt = 0; + while(!res){ + mdclog_write(MDCLOG_INFO, "Sending subscription delete request for id = %d ... Attempt number = %d\n", sgnb_add_subscr_req.get_request_id(), attempt); + res = delete_subscription(sub_handler, my_xapp.get(), sgnb_add_subscr_req, subscr_response, my_config.gNodeB_list[0]); + if (!res){ + sleep(5); + }; + attempt ++; + } + + std::cout <<"SUBSCRIPTION DELETE REQUEST :: Successfuly deleted subscription request " << request_id << std::endl; + + }; + + //Wait for stop + while(RunProg){ + sleep(10); + } + + i = 0; + for(auto &e: message_procs){ + mdclog_write(MDCLOG_INFO, "Thread %d : Number of packets handled = %lu", thread_ids[i], e.get()->get_messages()); + std::cout << "Thread " << thread_ids[i] << " Number of packets handled = " << e.get()->get_messages() << std::endl; + + i ++ ; + } + + std::cout <<"Stopping all running threads ..." << std::endl; + (*my_xapp).Stop(); + std::cout <<"Stopped RMR processing threads ...." << std::endl; + metrics_thread.join(); + std::cout <<"Stopped Metric collection thread ...." << std::endl; + Plugins.clear(); + plugin_rmr_map.clear(); + std::cout <<"Cleared Plugins .." << std::endl; + + std::cout <<"Finished ... " << std::endl; + + return 0; +}; diff --git a/src/adm-ctrl-xapp.hpp b/src/adm-ctrl-xapp.hpp new file mode 100644 index 0000000..5aa38c7 --- /dev/null +++ b/src/adm-ctrl-xapp.hpp @@ -0,0 +1,86 @@ +/* +================================================================================== + + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ +/* Author : Ashwin Sridharan + Date : Feb 2019 +*/ + +#pragma once +#ifndef ADM_CTRL_XAPP_ +#define ADM_CTRL_XAPP_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "admission_policy.hpp" +#include "message_processor_class.hpp" + +#define MAX_SLEEP 86400 +#define DEFAULT_A1_SCHEMA_FILE "/etc/xapp/a1-schema.json" +#define DEFAULT_VES_SCHEMA_FILE "/etc/xapp/ves-schema.json" +#define DEFAULT_SAMPLE_FILE "/etc/xapp/samples.json" +#define DEFAULT_VES_COLLECTOR_URL "127.0.0.1:6350" +#define DEFAULT_VES_MEASUREMENT_INTERVAL 10 +#define MAX_SUBSCRIPTION_ATTEMPTS 10 +//================================================ + + +// configuration parameters +struct configuration { + + char name[128] = "xapp_adm_ctrl"; + char port[16] = "tcp:4560"; + + int num_threads = 1; + std::unique_ptr my_xapp; + std::string a1_schema_file ; + std::string sample_file ; + std::string ves_schema_file ; + std::string ves_collector_url; + unsigned int measurement_interval = 0; + int log_level = MDCLOG_WARN; + int test_mode = 0; + std::string operating_mode = "REPORT"; + + void fill_gnodeb_list(char * gNodeB_string){ + gNodeB_list.clear(); + char * gnb = strtok(gNodeB_string, ","); + while(gnb != NULL){ + gNodeB_list.push_back(gnb); + gnb = strtok(NULL, ","); + } + + }; + + std::vector gNodeB_list; + +}; + +void usage(char *command); +void get_environment_config(configuration & config_instance); +void get_command_line_config(int argc, char **argv, configuration &config_instance); +extern bool report_mode_only; +#endif diff --git a/src/curl/curl_interface.cc b/src/curl/curl_interface.cc new file mode 100644 index 0000000..2c9e498 --- /dev/null +++ b/src/curl/curl_interface.cc @@ -0,0 +1,48 @@ +#include "curl_interface.hpp" +curl_interface::curl_interface(std::string curl_collector_url):_curl_url(curl_collector_url){}; + + +bool curl_interface::post_metrics(std::string & data){ + + CURL *curl = curl_easy_init(); + CURLcode result; + bool res = false; + + if(curl) { + struct curl_slist *headers = NULL; + headers = curl_slist_append(headers, "Content-Type:application/json"); + + /* point to ves collector */ + curl_easy_setopt(curl, CURLOPT_URL, _curl_url.c_str()); + + /* Set header */ + curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); + + /* size of the POST data */ + curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, data.length()); + + /* pass in a pointer to the data - libcurl will not copy */ + curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data.c_str()); + + result = curl_easy_perform(curl); + if (result != CURLE_OK){ + _error.assign(curl_easy_strerror(result)); + } + else{ + res = true; + } + + curl_easy_cleanup(curl); + curl_free(headers); + } + else{ + _error.assign("Could not instantiate curl handle !"); + } + + return res; +} + + +std::string curl_interface::getError(void) const{ + return _error; +} diff --git a/src/curl/curl_interface.hpp b/src/curl/curl_interface.hpp new file mode 100644 index 0000000..bd72b50 --- /dev/null +++ b/src/curl/curl_interface.hpp @@ -0,0 +1,21 @@ +#include +#include +#include + +#ifndef CURL_INTERFACE +#define CURL_INTERFACE + +class curl_interface { + +public: + curl_interface(std::string); + bool post_metrics(std::string & data); + std::string getError(void) const; + +private: + std::string _curl_url; + std::string _error; +}; + + +#endif diff --git a/src/get_config.cc b/src/get_config.cc new file mode 100644 index 0000000..0c469cb --- /dev/null +++ b/src/get_config.cc @@ -0,0 +1,253 @@ +/* +================================================================================== + + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ + +#include "adm-ctrl-xapp.hpp" + +void get_environment_config(configuration & config_instance){ + + // Order of priority for setting variables + // So we start in reverse order + // -- command line + // -- environment variable + // -- default path + + if (const char *env_schema = std::getenv("A1_SCHEMA_FILE")){ + config_instance.a1_schema_file.assign(env_schema); + mdclog_write(MDCLOG_INFO, "Schema file set to %s from environment variable", config_instance.a1_schema_file.c_str()); + } + else{ + config_instance.a1_schema_file.assign(DEFAULT_A1_SCHEMA_FILE); + mdclog_write(MDCLOG_INFO, "Using default schema file %s\n", config_instance.a1_schema_file.c_str()); + } + + if (const char *env_schema = std::getenv("VES_SCHEMA_FILE")){ + config_instance.ves_schema_file.assign(env_schema); + mdclog_write(MDCLOG_INFO, "VES Schema file set to %s from environment variable", config_instance.ves_schema_file.c_str()); + } + else{ + config_instance.ves_schema_file.assign(DEFAULT_VES_SCHEMA_FILE); + mdclog_write(MDCLOG_INFO, "Using default ves schema file %s\n", config_instance.ves_schema_file.c_str()); + } + + + if (const char *env_schema = std::getenv("SAMPLES_FILE")){ + config_instance.sample_file.assign(env_schema); + mdclog_write(MDCLOG_INFO, "JSON Sample file set to %s from environment variable", config_instance.sample_file.c_str()); + } + else{ + config_instance.sample_file.assign(DEFAULT_SAMPLE_FILE); + mdclog_write(MDCLOG_INFO, "Using default sample file %s\n", config_instance.sample_file.c_str()); + } + + + if (const char *env_schema = std::getenv("VES_COLLECTOR_URL")){ + config_instance.ves_collector_url.assign(env_schema); + mdclog_write(MDCLOG_INFO, "VES Collector URL set to %s from environment variable", config_instance.ves_collector_url.c_str()); + } + else{ + config_instance.ves_collector_url.assign(DEFAULT_VES_COLLECTOR_URL); + mdclog_write(MDCLOG_INFO, "Using default ves collector url %s\n", config_instance.ves_collector_url.c_str()); + } + + + if (const char *env_schema = std::getenv("VES_MEASUREMENT_INTERVAL")){ + config_instance.measurement_interval = atoi(env_schema); + if ( config_instance.measurement_interval < 1 || config_instance.measurement_interval > MAX_SLEEP){ + throw std::runtime_error("Invalid measurmeent interval provided. Must between [1 and " + std::to_string(MAX_SLEEP) + "] seconds"); + + } + mdclog_write(MDCLOG_INFO, "Interval set to %d from environment variable", config_instance.measurement_interval); + } + else{ + config_instance.measurement_interval = DEFAULT_VES_MEASUREMENT_INTERVAL; + mdclog_write(MDCLOG_INFO, "Using default measurement interval %d\n", config_instance.measurement_interval); + } + + + + if (char *env_gnodeb = std::getenv("GNODEB")){ + config_instance.fill_gnodeb_list(env_gnodeb); + mdclog_write(MDCLOG_INFO, "gNodeB List set to %s from environment variable", env_gnodeb); + } + + + if (const char *env_opmode = std::getenv("OPERATING_MODE")){ + config_instance.operating_mode.assign(env_opmode); + if ( config_instance.operating_mode != "REPORT" && config_instance.operating_mode != "CONTROL"){ + throw std::runtime_error("Invalid operating mode: " + config_instance.operating_mode + " Must be REPORT or CONTROL"); + } + mdclog_write(MDCLOG_INFO, "Operating mode set from environment variable to %s\n", config_instance.operating_mode.c_str()); + } + + + if (const char *threads = std::getenv("THREADS")){ + config_instance.num_threads = atoi(threads); + if ( config_instance.num_threads <= 0 or config_instance.num_threads > MAX_THREADS){ + mdclog_write(MDCLOG_ERR, "Error :: %s, %d :: Must specify numnber of threads between [1 and %d]. Specified = %d\n", __FILE__, __LINE__, MAX_THREADS, config_instance.num_threads); + exit(-1); + } + else{ + mdclog_write(MDCLOG_INFO, "Number of threads set to %d from environment variable\n", config_instance.num_threads); + } + } + + if (const char *test= std::getenv("TEST_MODE")){ + config_instance.test_mode = atoi(test); + mdclog_write(MDCLOG_INFO, "xAPP set to Test Mode state %d from Environment Variable", config_instance.test_mode); + } + + if (const char *log_env = std::getenv("LOG_LEVEL")){ + if (!strcmp(log_env, "MDCLOG_INFO")){ + config_instance.log_level = MDCLOG_INFO; + } + else if (!strcmp(log_env, "MDCLOG_WARN")){ + config_instance.log_level = MDCLOG_WARN; + } + else if (!strcmp(log_env, "MDCLOG_ERR")){ + config_instance.log_level = MDCLOG_ERR; + } + else if (!strcmp(log_env, "MDCLOG_DEBUG")){ + config_instance.log_level = MDCLOG_DEBUG; + } + else{ + config_instance.log_level = MDCLOG_WARN; + std::cerr <<"Error ! Illegal environment option for log level ignored. Setting log level to " << config_instance.log_level << std::endl; + } + } + +} + +void get_command_line_config(int argc, char **argv, configuration &config_instance){ + + // Parse command line options to over ride + static struct option long_options[] = + { + /* Thse options require arguments */ + {"name", required_argument, 0, 'n'}, + {"port", required_argument, 0, 'p'}, + {"threads", required_argument, 0, 't'}, + {"a1-schema", required_argument, 0, 'a'}, + {"ves-schema", required_argument, 0, 'v'}, + {"samples", required_argument, 0, 's'}, + {"ves-url", required_argument, 0, 'u'}, + {"interval", required_argument, 0, 'i'}, + {"gNodeB", required_argument, 0, 'g'}, + {"opmode", required_argument, 0, 'c'}, + {"verbose", no_argument, &config_instance.log_level, MDCLOG_INFO}, + {"test", no_argument, &config_instance.test_mode, 1}, + + }; + + + while(1) { + + int option_index = 0; + char c = getopt_long(argc, argv, "n:p:t:s:g:a:v:u:i:c:", long_options, &option_index); + + if(c == -1){ + break; + } + + switch(c) + { + + case 0: + /* An option flag was set. + Do nothing for now */ + break; + + case 'n': + strcpy(config_instance.name, optarg); + break; + + case 'p': + strcpy(config_instance.port, optarg); + break; + + case 't': + config_instance.num_threads = atoi(optarg); + mdclog_write(MDCLOG_INFO, "Number of threads set to %d from command line e\n", config_instance.num_threads); + break; + + case 's': + config_instance.sample_file.assign(optarg); + mdclog_write(MDCLOG_INFO, "Samples JSON file set to %s from command line ", config_instance.sample_file.c_str()); + break; + + case 'a': + config_instance.a1_schema_file.assign(optarg); + mdclog_write(MDCLOG_INFO, "Schema file set to %s from command line ", config_instance.a1_schema_file.c_str()); + break; + + case 'v': + config_instance.ves_schema_file.assign(optarg); + mdclog_write(MDCLOG_INFO, "VES Schema file set to %s from command line ", config_instance.ves_schema_file.c_str()); + break; + + case 'c': + config_instance.operating_mode.assign(optarg); + mdclog_write(MDCLOG_INFO, "Operating mode set from command line to %s\n", config_instance.operating_mode.c_str()); + break; + + case 'u': + config_instance.ves_collector_url.assign(optarg); + mdclog_write(MDCLOG_INFO, "VES collector url set to %s from command line ", config_instance.ves_collector_url.c_str()); + break; + + case 'i': + config_instance.measurement_interval = atoi(optarg); + if (config_instance.measurement_interval < 1 || config_instance.measurement_interval > MAX_SLEEP){ + throw std::runtime_error("Invalid measurmeent interval provided. Must between [1 and " + std::to_string(MAX_SLEEP) + "] seconds"); + } + mdclog_write(MDCLOG_INFO, "Measurement interval set to %d from command line\n", config_instance.measurement_interval); + break; + + case 'g': + config_instance.fill_gnodeb_list(optarg); + mdclog_write(MDCLOG_INFO, "gNodeB List set to %s from command line ", optarg); + break; + + case 'h': + usage(argv[0]); + exit(0); + + default: + usage(argv[0]); + exit(1); + } + }; + +} + + +void usage(char *command){ + std::cout <<"Usage : " << command << " " << std::endl; + std::cout <<" --name[-n] xapp_instance_name "<< std::endl; + std::cout <<" --port[-p] port to listen on e.g tcp:4561 "<< std::endl; + std::cout << "--threads[-t] number of listener threads "<< std::endl ; + std::cout << "--a1-schema[-a] a1 schema file location" << std::endl; + std::cout << "--ves-schema[-v] ves schema file location" << std::endl; + std::cout << "--samples [-s] samples file location with samples for all jsons" << std::endl; + std::cout << "--ves-url [-u] ves collector url" << std::endl; + std::cout <<"[--gNodeB[][-g] gNodeB" << std::endl; + std::cout <<"--interval[-i] measurement interval to send to ves collector (in seconds)" << std::endl; + std::cout <<"--test puts xapp in test mode where it sends subscription, waits for interval and then sends delete subscription " << std::endl; + std::cout <<"--opmode [-c] type of operatoring mode : either REPORT or INSERT. In REPORT, does not send a control message back to gNodeB" << std::endl; + std::cout << "--verbose " << std::endl; +} diff --git a/src/json/json_handler.cc b/src/json/json_handler.cc new file mode 100644 index 0000000..a14b341 --- /dev/null +++ b/src/json/json_handler.cc @@ -0,0 +1,686 @@ +/* +================================================================================== + + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ +/* + Author : Ashwin Sridharan + + +*/ + +#include +#include + +TrieNode::TrieNode(int val): val_type(-1){ + _id.tag = DataContainer::Types::integer; + _id.value.i = val; +} + +TrieNode::TrieNode( std::string val) : val_type(-1){ + _id.tag = DataContainer::Types::str; + _id.value.s.assign(val); +} + +void TrieNode::set_value(const char * val){ + _val.tag = DataContainer::Types::str; + _val.value.s.assign(val); +} + + +void TrieNode::set_value(bool val){ + _val.tag = DataContainer::Types::boolean; + _val.value.b = val; + +} + +void TrieNode::set_value(int val){ + _val.tag = DataContainer::Types::integer; + _val.value.i = val; + //std::cout <<"Assigned integer " << val << std::endl; + + +} + +void TrieNode::set_value(unsigned int val){ + _val.tag = DataContainer::Types::uinteger; + _val.value.ui = val; + +} + +void TrieNode::set_value( long int val){ + _val.tag = DataContainer::Types::big_integer; + _val.value.l = val; +} + +void TrieNode::set_value(unsigned long int val){ + _val.tag = DataContainer::Types::ubig_integer; + _val.value.ul = val; +} + +void TrieNode::set_value(double val){ + _val.tag = DataContainer::Types::real; + _val.value.f = val; + +} + + +void TrieNode::set_value(std::string val){ + _val.tag = DataContainer::Types::str; + _val.value.s.assign(val); +} + +void TrieNode::set_value(const char * c, size_t len){ + _val.tag = DataContainer::Types::str; + _val.value.s.assign(c, len); +} + +void TrieNode::add_child(TrieNode * node){ + _children.push_back(node); +}; + + + +void TrieNode::print_id(void){ + switch(_id.tag){ + + case DataContainer::Types::integer : + std::cout <<"Type = " << _id.tag << " Value = " << _id.value.i << std::endl; + break; + case DataContainer::Types::str : + std::cout <<"Type = " << _id.tag << " Value = " << _id.value.s << std::endl; + break; + default: + std::cerr<< "Error ! ID not set or unknown type " << _id.tag; + } +}; + +void TrieNode::print_value(void){ + switch(_val.tag){ + + case DataContainer::Types::boolean : + std::cout <<"Type = " << _val.tag << " Value = " << _val.value.b << std::endl; + break; + case DataContainer::Types::integer : + std::cout <<"Type = " << _val.tag << " Value = " << _val.value.i << std::endl; + break; + case DataContainer::Types::uinteger : + std::cout <<"Type = " << _val.tag << " Value = " << _val.value.ui << std::endl; + break; + case DataContainer::Types::big_integer : + std::cout <<"Type = " << _val.tag << " Value = " << _val.value.l << std::endl; + break; + case DataContainer::Types::ubig_integer : + std::cout <<"Type = " << _val.tag << " Value = " << _val.value.ul << std::endl; + break; + case DataContainer::Types::real : + std::cout <<"Type = " << _val.tag << " Value = " << _val.value.f << std::endl; + break; + case DataContainer::Types::str : + std::cout <<"Type = " << _val.tag << " Value = " << _val.value.s << std::endl; + break; + default: + std::cerr<< "Error ! Value not set or unknown type " << _val.tag; + } +}; + + +jsonHandler::jsonHandler(void):_is_root(false), _is_schema(false), _is_buffer(false){ + +}; + + + + +void jsonHandler::load_file(std::string input_file, std::string & contents ){ + + std::FILE *fp ; + try{ + fp = std::fopen(input_file.c_str(), "rb"); + } + catch(std::exception &e){ + std::string error_string = "Error opening input schema file " + input_file; + throw std::runtime_error(error_string); + } + + if (fp){ + std::fseek(fp, 0, SEEK_END); + contents.resize(std::ftell(fp)); + std::rewind(fp); + std::fread(&contents[0], 1, contents.size(), fp); + std::fclose(fp); + } + + else{ + std::string error_string = "Error opening input file " + input_file; + throw std::runtime_error(error_string); + } + +} + + + +void jsonHandler::load_schema(std::string input_file){ + + load_file(input_file, _contents); + Document _doc; + if (_doc.Parse(_contents.c_str()).HasParseError()){ + std::string error_string = input_file + " is invalid JSON" ; + throw std::runtime_error(error_string); + } + + _ref_schema_doc= std::make_unique(_doc); + _is_schema = true; + + +} + +void jsonHandler::load_schema(std::string input_file, TrieNode * root){ + + load_file(input_file, _contents); + std::string response; + Document _doc; + if (_doc.Parse(_contents.c_str()).HasParseError()){ + std::string error_string = input_file + " is invalid JSON" ; + throw std::runtime_error(error_string); + } + + // Get message schema + bool res; + Value _schema_root; + Value &_root = _doc; + res = find_member(_root, response, root, _schema_root); + if (res == false){ + throw std::runtime_error(response); + } + + _ref_schema_doc= std::make_unique(_schema_root); + _is_schema = true; + +} + +void jsonHandler::load_buffer(std::string input_file){ + + load_file(input_file, _buffer); + Document _doc; + if (_doc.Parse(_buffer.c_str()).HasParseError()){ + std::string error_string = input_file + " is invalid JSON" ; + throw std::runtime_error(error_string); + } + _is_buffer = true; + +} + +void jsonHandler::load_buffer(std::string input_file, TrieNode * root){ + + load_file(input_file, _buffer); + Document _doc; + std::string response; + + if (_doc.Parse(_buffer.c_str()).HasParseError()){ + std::string error_string = input_file + " is invalid JSON" ; + throw std::runtime_error(error_string); + } + + bool res; + Value _buffer_root; + res = find_member(_doc, response, root, _buffer_root); + if(res == false){ + throw std::runtime_error(response); + } + + StringBuffer out_buffer; + Writer writer(out_buffer); + _buffer_root.Accept(writer); + _buffer.assign(out_buffer.GetString(), out_buffer.GetLength()); + _is_buffer = true; +} + + +std::string jsonHandler::get_buffer(void){ + std::string response; + if (_is_buffer){ + response.assign(_buffer); + } + else{ + response = ""; + } + + return response; +} + + + + + + +bool jsonHandler::find_member(const std::string schema, std::string & response, TrieNode * root, Value & TargetVal){ + + Document doc; + std::string contents(schema); + + if(doc.Parse(contents.c_str()).HasParseError()){ + response.assign("Error Parsing JSON File"); + return false; + } + + return find_member(doc, response, root, TargetVal); + return true; +}; + + +bool jsonHandler::find_member(Value & doc_root, std::string & response, TrieNode * root, Value & TargetVal){ + + if (!root){ + response.assign("Null Trie root node"); + return false; + } + //std::cout <<"LOoking for schema root" << std::endl; + + Value & json_node = doc_root; + TrieNode * trie_node = root; + Value::MemberIterator itr; + + while(1){ + + DataContainer const * d = trie_node->get_id(); + if (! d){ + response.assign("Error could not find any id for trie node "); + return false; + } + + if (d->tag == DataContainer::Types::integer && json_node.IsArray()){ + if (json_node.Size() < d->value.i){ + response.assign("Error json array size "); + response += std::to_string(json_node.Size()) + " is smaller than trie node index " + std::to_string( d->value.i); + return false; + } + + if (trie_node->is_child()){ + response.assign("Error child trie points to an array ? "); + return false; + } + + trie_node = trie_node->get_children()[0]; + json_node = json_node[d->value.i]; + } + else if (d->tag == DataContainer::Types::str && json_node.IsObject()){ + + itr = json_node.FindMember(d->value.s.c_str()); + if (itr == json_node.MemberEnd()){ + response.assign("Error ! Could not find key = "); + response += d->value.s; + return false; + } + if (trie_node->is_child()){ + // reached end of trie + if (itr->value.IsObject()){ + TargetVal = itr->value.GetObject(); + //std::cout <<"Reached root = " << itr->name.GetString() << std::endl; + } + else if (itr->value.IsArray()){ + TargetVal = itr->value.GetArray(); + } + else{ + response.assign("Error ! JSON node selected must be object or array in current version"); + std::cerr << response << std::endl; + return false; + } + break; + } + else{ + trie_node = trie_node->get_children()[0]; + trie_node->print_id(); + + if (itr->value.IsObject()){ + json_node = itr->value.GetObject(); + } + else if (itr->value.IsArray()){ + json_node = itr->value.GetArray(); + } + else{ + std::string error_string= " Path must be an object or array"; + response.assign(error_string); + return false; + } + } + } + else{ + std::string error_string = "Mismatch when setting root : Trie node is of type = " + std::to_string (d->tag) + " and json node is of type = " + std::to_string(json_node.GetType()); + response.assign(error_string); + return false; + } + + } + + return true; + +} + +bool jsonHandler::is_valid(const char *message, int message_length, std::string & response){ + + Document doc; + if (! _is_schema){ + return false; + } + + SchemaValidator validator(*(_ref_schema_doc.get())); + + // ensure message has terminator by translating to string ? + std::string message_s(message, message_length); + + + // validate json + if (doc.Parse(message_s.c_str()).HasParseError()){ + + // return error message + std::string failed_message = "\"message\": \"Invalid JSON\""; + response.assign( failed_message ); + return false; + } + + + // Validate against our JSON input schema + if (!doc.Accept(validator)){ + + StringBuffer sb; + validator.GetInvalidSchemaPointer().StringifyUriFragment(sb); + std::string failed_message = std::string("\"message\": \"Schema Violation:") + std::string(sb.GetString()); + failed_message += std::string(" Invalid keyword :") + std::string(validator.GetInvalidSchemaKeyword()) + " \""; + response.assign(failed_message); + return false; + + } + response.assign("SUCCESS"); + return true; + + +} + + + +// should be thread safe since it can be expected to be called from multiple threads +// only static external variable referenced is the schema (which should be read-only and hence ok ?) + +// Returns 0 if success +// -1 if invalid json +// -2 if invalid schema (assuming schema provided) +// -3 unknown key +// -4 no buffer available + +int jsonHandler::get_values(const char *message, int message_length, std::string & response, TrieNode * root, std::vector & response_list){ + + Document doc; + + // ensure message has terminator by translating to string ? + std::string message_s(message, message_length); + + // validate json + if (doc.Parse(message_s.c_str()).HasParseError()){ + + // return error message + response.assign("Invalid JSON"); + return -1; + } + + // Validate against our JSON input schema + if ( _is_schema){ + SchemaValidator validator(*(_ref_schema_doc.get())); + + if (!doc.Accept(validator)){ + + StringBuffer sb; + validator.GetInvalidSchemaPointer().StringifyUriFragment(sb); + response = std::string("Schema Violation ") + std::string(sb.GetString()) ; + response += std::string(" Invalid keyword = ") + std::string(validator.GetInvalidSchemaKeyword()) + " \""; + return -2; + } + + } + + Value & doc_root = doc; + bool res = traverse_doc(doc_root, root, true, response, response_list); + if (!res){ + return -3; + } + + response.assign("SUCCESS"); + return 0; +} + + +int jsonHandler::get_values( std::string & response, TrieNode * root, std::vector & response_list){ + int res; + if (_is_buffer){ + Document _doc; + _doc.Parse(_buffer.c_str()); + Value & _buffer_root = _doc; + + res = traverse_doc(_buffer_root, root, true, response, response_list); + return res; + } + else{ + response = "Error ! No buffer loaded in json object for get"; + return -4; + } +} + + +// If in get mode, return all values we can get +// If in set mode, return false if we cannot set a value +bool jsonHandler::traverse_doc(Value & json_node, TrieNode * trie_node, bool get, std::string & response, std::vector & response_list ){ + + if (!trie_node){ + response.assign(" Null Trie node "); + return false; + } + + bool res; + + DataContainer const * d = trie_node->get_id(); + if (! d){ + response.assign(" Error could not find any id for trie node"); + return false; + } + + Value::MemberIterator itr; + + + if (d->tag == DataContainer::Types::integer && json_node.IsArray()){ + if (json_node.Size() < d->value.i){ + response = "Error json array size " + std::to_string( json_node.Size()) + " is smaller than trie node index " + std::to_string( d->value.i); + return false; + } + + if (trie_node->is_child()){ + response.assign("Error child trie points to an array ? "); + return false; + } + + for (auto & e: trie_node->get_children()){ + res = traverse_doc(json_node[d->value.i], e, get, response, response_list); + if (!res && ! get){ + // if not in get mode and we hit a not found + // don't go any further, else move to next ... + return res; + } + } + } + + else if (d->tag == DataContainer::Types::str && json_node.IsObject()){ + itr = json_node.FindMember(d->value.s.c_str()); + + if (itr == json_node.MemberEnd()){ + response = "Error ! Could not find key " + d->value.s; + return false; + } + + if (trie_node->is_child()){ + // end of the line : do we get or set values ? + bool is_set = false; + if (get){ + if (itr->value.IsBool()){ + trie_node->set_value(itr->value.GetBool()); + is_set = true; + } + else if (itr->value.IsInt()){ + trie_node->set_value(itr->value.GetInt()); + is_set = true; + } + else if(itr->value.IsUint()){ + trie_node->set_value(static_cast(itr->value.GetUint())); + is_set = true; + } + else if(itr->value.IsUint64()){ + trie_node->set_value(static_cast(itr->value.GetUint64())); + is_set = true; + } + else if (itr->value.IsInt64()){ + trie_node->set_value(static_cast(itr->value.GetInt64())); + is_set = true; + } + else if ( itr->value.IsDouble()){ + trie_node->set_value(itr->value.GetDouble()); + is_set = true; + } + else if ( itr->value.IsString()){ + trie_node->set_value(itr->value.GetString(), itr->value.GetStringLength()); + is_set = true; + } + else{ + response = " json node corresponding to child node key must of type bool, int or string. Is of type = " + std::to_string(itr->value.GetType()); + return false; + } + + if (is_set){ + response_list.push_back(trie_node); + } + + //std::cout <<"Set value of child node with key = " << d->value.s.c_str() << " Type = " << trie_node->get_type() << std::endl; + + } + else{ + DataContainer const * d_val = trie_node->get_value(); + if (d_val->tag == DataContainer::Types::boolean){ + itr->value.SetBool(d_val->value.b); + } + else if (d_val->tag == DataContainer::Types::integer){ + itr->value.SetInt(d_val->value.i); + + } + else if (d_val->tag == DataContainer::Types::uinteger){ + itr->value.SetUint(d_val->value.ui); + + } + else if (d_val->tag == DataContainer::Types::big_integer){ + itr->value.SetInt64(d_val->value.l); + } + else if (d_val->tag == DataContainer::Types::ubig_integer){ + itr->value.SetUint64(d_val->value.ul); + } + else if (d_val->tag == DataContainer::Types::real){ + itr->value.SetDouble(d_val->value.f); + } + else if (d_val->tag == DataContainer::Types::str){ + itr->value.SetString(d_val->value.s.c_str(), d_val->value.s.length()); + } + else{ + response = " unknown type for child node value = " + std::to_string(d_val->tag) + " cannot set json node key = " + d->value.s; + return false; + } + } + return true; + } + else{ + for (auto & e: trie_node->get_children()){ + res = traverse_doc(itr->value, e, get, response, response_list); + if(res == false && ! get){ + return false; + } + } + } + } + + else{ + response = "Mismatch : Trie node is of type = " + std::to_string(d->tag) + " while json node is of type = " + std::to_string( json_node.GetType()); + return false; + } + + return true; + + +} + + +int jsonHandler::set_values(const char * buffer, int len, std::string & response, std::vector root_nodes){ + + Document doc; + std::string message_s(buffer, len); + + // validate json + if (doc.Parse(message_s.c_str()).HasParseError()){ + // return error message + response.assign("Invalid JSON"); + return -1; + } + + + Value & doc_root = doc; + // fake list to maintain signature for re-using traverse_doc + // since we don't return trie nodes when setting ... + std::vector fake_list; + for(auto const & e: root_nodes){ + bool res = traverse_doc(doc_root, e, false, response, fake_list); + if (!res){ + return -3; + } + } + + StringBuffer out_buffer; + Writer writer(out_buffer); + doc_root.Accept(writer); + response.assign(out_buffer.GetString(), out_buffer.GetLength()); + return 0; + } + + +// wrapper if instead of providing buffer, we simply use stored json object and use it +int jsonHandler::set_values(std::string & response, std::vector root_nodes){ + if (_is_buffer){ + std::vector fake_list; + Document _doc; + _doc.Parse(_buffer.c_str()); + Value & _buffer_root = _doc; + + for(auto const & e: root_nodes){ + bool res = traverse_doc(_buffer_root, e, false, response, fake_list); + if (!res){ + return -3; + } + } + + StringBuffer out_buffer; + Writer writer(out_buffer); + _buffer_root.Accept(writer); + response.assign(out_buffer.GetString(), out_buffer.GetLength()); + return 0; + } + else{ + response = "Error ! " + std::string( __FILE__) + "," + std::to_string(__LINE__) + " : No buffer loaded in json object to set"; + return -1; + } + +} diff --git a/src/json/json_handler.hpp b/src/json/json_handler.hpp new file mode 100644 index 0000000..95765ef --- /dev/null +++ b/src/json/json_handler.hpp @@ -0,0 +1,150 @@ + +/* +================================================================================== + + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ +/* + Author : Ashwin Sridharan + + +*/ + +#pragma once +#ifndef JSON_HANDLER +#define JSON_HANDLER + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define MAX_QUEUE_SIZE 100 + +using namespace rapidjson; + + +struct DataContainer { + enum Types {boolean, integer, uinteger, big_integer, ubig_integer, real, str} tag ; + struct { + union { + bool b; + int i; + unsigned int ui; + long int l; + unsigned long int ul; + double f; + } ; + std::string s; + } value; +}; + +class TrieNode; + +class TrieNode{ +public: + + TrieNode (int); + TrieNode( std::string ); + + void set_type(DataContainer::Types); + int get_type(void) const {return _val.tag;} ; + + void set_value(bool val); + void set_value(int val); + void set_value(unsigned int val); + + void set_value(long int ); + void set_value(unsigned long int ); + void set_value(double val); + void set_value(const char *); + void set_value(std::string val); + void set_value(const char * , size_t ); + + void print_id(void); + void print_value(void); + void add_child(TrieNode *); + + DataContainer const * get_value(void) const { return & _val; }; + DataContainer const * get_id(void) const { return & _id;}; + + std::vector & get_children(void){ return _children;} ; + std::string & name(void) {return _name; }; + bool is_child(void){ return _children.size() ? false : true; }; + +private: + std::vector _children; + int val_type; + std::string _name; + DataContainer _id; + DataContainer _val; +}; + +class jsonHandler { + +public: + jsonHandler(void); + + + void load_schema(std::string); + void load_schema(std::string, TrieNode *root); + void load_schema(std::string , std::vector & ); + + void load_buffer(std::string); + void load_buffer(std::string, TrieNode * ); + std::string get_buffer(void); + + int get_values(const char *, int , std::string & , TrieNode *, std::vector & ); + int get_values( std::string & , TrieNode *, std::vector & ); + + int set_values (const char *, int, std::string & , std::vector); + int set_values (std::string & , std::vector); + + bool is_valid(const char *, int, std::string &); + +private: + + void load_file(std::string, std::string &); + + bool traverse_doc(Value &, TrieNode *, bool, std::string &, std::vector & ); + + bool find_member(const std::string, std::string &, std::vector &, Value & ); + + bool find_member(const std::string, std::string &, TrieNode *, Value &); + bool find_member(Value &, std::string &, TrieNode *, Value &); + + bool add_array_objects(std::queue &, Value &); + + bool _is_root, _is_schema, _is_buffer; + + std::unique_ptr _ref_schema_doc; + std::map _key_value_pairs; + std::string _contents; + std::string _buffer; + +}; + + +#endif diff --git a/src/message_processor_class.cc b/src/message_processor_class.cc new file mode 100644 index 0000000..bc017ad --- /dev/null +++ b/src/message_processor_class.cc @@ -0,0 +1,269 @@ +/* +================================================================================== + + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ + + +#include + + +int verbose_flag = 0; + +message_processor::message_processor(): _ref_sub_handler(NULL), _ref_protector(NULL), _ref_policy_handler(NULL), _num_messages(0), current_index (0), num_indications(0), num_err_indications(0){ + scratch_buffer = 0; + scratch_buffer = (unsigned char *)calloc(BUFFER_LENGTH, sizeof(unsigned char)); + assert(scratch_buffer != 0); + remaining_buffer = BUFFER_LENGTH; +}; + + +void message_processor::register_subscription_handler(SubscriptionHandler * sub){ + _ref_sub_handler = sub; +} + + +void message_processor::register_protector(protector * p){ + _ref_protector = p; +} + +void message_processor::register_policy_handler(void (*f1)(int, const char *, int, std::string &, bool)){ + _ref_policy_handler = f1; +} + +message_processor::~message_processor(void){ + free(scratch_buffer); +} + +// main message processing +bool message_processor::operator()(rmr_mbuf_t *message){ + + bool res; + int message_type, procedure_code; + bool send_msg = false; + asn_dec_rval_t rval; + size_t buf_size = BUFFER_LENGTH; + size_t mlen; + _num_messages ++; + std::string response; + //FILE *pfile; + //std::string filename = "/opt/out/e2ap_" + std::to_string(_num_messages) + ".per"; + + // main message processing code + switch(message->mtype){ + + case RIC_INDICATION: + + if (unlikely(_ref_protector == NULL)){ + mdclog_write(MDCLOG_ERR, "Error :: %s, %d: No plugin registered to handle ric indication message\n", __FILE__, __LINE__); + break; + } + + //pfile = fopen(filename.c_str(), "wb"); + //fwrite(message->payload, sizeof(char), message->len, pfile); + //fclose(pfile); + + e2ap_recv_pdu = 0; + e2sm_header = 0; + + rval = asn_decode(0,ATS_ALIGNED_BASIC_PER, &asn_DEF_E2AP_PDU, (void**)&(e2ap_recv_pdu), message->payload, message->len); + + if(likely(rval.code == RC_OK)){ + num_indications ++; + res = indication_processor.get_fields(e2ap_recv_pdu->choice.initiatingMessage, indication_data); + if (unlikely(!res)){ + mdclog_write(MDCLOG_ERR, "Error :: %s, %d :: Could not get fields from RICindication message\n", __FILE__, __LINE__); + goto finished; + } + //std::cout <<"+++++++++++++++++++++++ E2AP Indication ++++++++++++++++++++++++" << std::endl; + //xer_fprint(stdout, &asn_DEF_E2AP_PDU, e2ap_recv_pdu); + //std::cout <<"+++++++++++++++++++++++ E2AP Indication ++++++++++++++++++++++++" << std::endl; + } + else{ + num_err_indications ++; + mdclog_write(MDCLOG_ERR, "Error :: %s, %d: Error decoding E2AP PDU\n", __FILE__, __LINE__); + goto finished; + } + + mdclog_write(MDCLOG_INFO, "E2AP INDICATION :: Successfully received E2AP Indication message with id = %d, sequence no = %d, Number of indication messages = %lu, Number of erroneous indications = %lu\n", indication_data.req_id, indication_data.req_seq_no, num_indications, num_err_indications); + + //Decode the SM header + rval = asn_decode(0, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2SM_gNB_X2_indicationHeader, (void**)&(e2sm_header), indication_data.indication_header, indication_data.indication_header_size); + if (likely(rval.code == RC_OK)){ + res = e2sm_indication_processor.get_header_fields(e2sm_header, header_helper); + if (unlikely(!res)){ + mdclog_write(MDCLOG_ERR, "Error :: %s, %d :: Could not get fields from E2SM HEADER\n", __FILE__, __LINE__); + goto finished; + } + + // std::cout <<"+++++++++++++++++++++++ E2SM Indication Header ++++++++++++++++++++++++" << std::endl; + // xer_fprint(stdout, &asn_DEF_E2SM_gNB_X2_indicationHeader, e2sm_header); + // std::cout <<"+++++++++++++++++++++++ E2SM Indication Header ++++++++++++++++++++++++" << std::endl; + } + else{ + mdclog_write(MDCLOG_ERR, "Error :: %s, %d: Error decoding E2SM Header.", __FILE__, __LINE__); + goto finished; + } + mdclog_write(MDCLOG_DEBUG, "E2SM INDICATION HEADER :: Successfully decoded E2SM Indication Header of size %lu\n", indication_data.indication_header_size); + + + // NOTE : We assume RICindicationMessage contains payload (not E2SM message) + // Send payload to plugin + current_index = 0; + remaining_buffer = BUFFER_LENGTH; + + res = (*_ref_protector)(indication_data.indication_msg, indication_data.indication_msg_size, scratch_buffer, &buf_size); + if(unlikely(!res)){ + goto finished; + } + + // Do we respond ? Depends on RIC indication type ... + // if RICindicationType == report, then no response + // else if RICindicationType == insert, generate control ... + if (report_mode_only|| indication_data.indication_type == RICindicationType::RICindicationType_report){ + mdclog_write(MDCLOG_INFO, "Indication type is report. Not generating control\n"); + goto finished; + } + + message_helper.x2ap_pdu = &scratch_buffer[current_index]; + message_helper.x2ap_pdu_size = buf_size; // re-use for size + current_index +=message_helper.x2ap_pdu_size ; + remaining_buffer = BUFFER_LENGTH - current_index; + + if (current_index >= BUFFER_LENGTH){ + mdclog_write(MDCLOG_ERR, "Error :: %s, %d: Error buffer size %d too small to encode further objects \n", __FILE__, __LINE__, BUFFER_LENGTH); + goto finished; + } + + + // Encode the control header + // Control header is same as indication header ( except interface direction ?) + header_helper.interface_direction = 0; + res = e2sm_control_processor.encode_control_header(&scratch_buffer[current_index], &remaining_buffer, header_helper); + if (likely(res)){ + control_data.control_header = &scratch_buffer[current_index]; + control_data.control_header_size = remaining_buffer; + current_index += remaining_buffer ; + remaining_buffer = BUFFER_LENGTH - current_index; + + } + else{ + mdclog_write(MDCLOG_ERR, "Error :: %s, %d: Error encoding E2SM control header. Reason = %s\n", __FILE__, __LINE__, e2sm_control_processor.get_error().c_str()); + goto finished; + } + + if (current_index >= BUFFER_LENGTH){ + mdclog_write(MDCLOG_ERR, "Error :: %s, %d: Error buffer size %d too small to encode further objects \n", __FILE__, __LINE__, BUFFER_LENGTH); + goto finished; + } + + // Encode the control message + res = e2sm_control_processor.encode_control_message(&scratch_buffer[current_index], &remaining_buffer, message_helper); + if (likely(res)){ + control_data.control_msg = &scratch_buffer[current_index]; + control_data.control_msg_size = remaining_buffer; + + current_index += remaining_buffer ; + remaining_buffer = BUFFER_LENGTH - current_index; + } + else{ + mdclog_write(MDCLOG_ERR, "Error :: %s, %d: Error encoding E2SM control message. Reason = %s\n", __FILE__, __LINE__, e2sm_control_processor.get_error().c_str()); + goto finished; + } + + // Generate control message + mlen = BUFFER_LENGTH; + control_data.req_id = indication_data.req_id; + control_data.req_seq_no = indication_data.req_seq_no; + control_data.func_id = indication_data.func_id; + control_data.control_ack = 2; // no ack required + + res = control_request_processor.encode_e2ap_control_request(message->payload, &mlen, control_data); + + if(likely(res)){ + send_msg = true; + message->len = mlen; + message->mtype = RIC_CONTROL_REQ; + mdclog_write(MDCLOG_INFO, "E2AP CONTROL MESSAGE :: Successfully generated E2AP Control Message\n"); + } + else{ + mdclog_write(MDCLOG_ERR, "Error :: %s, %d: Error encoding E2SM control . Reason = %s\n", __FILE__, __LINE__, control_request_processor.get_error().c_str()); + goto finished; + } + // Record id for tracking .... (tbd) + finished: + ASN_STRUCT_FREE(asn_DEF_E2SM_gNB_X2_indicationHeader, e2sm_header); + ASN_STRUCT_FREE(asn_DEF_E2AP_PDU, e2ap_recv_pdu); + + if (send_msg){ + return true; + } + + break; + + case (RIC_SUB_RESP): + case (RIC_SUB_DEL_RESP): + case (RIC_SUB_FAILURE): + case ( RIC_SUB_DEL_FAILURE ): + if (_ref_sub_handler != NULL){ + mdclog_write(MDCLOG_INFO, "Received subscription message of type = %d", message->mtype); + _ref_sub_handler->Response(message->mtype, message->payload, message->len); + } + else{ + mdclog_write(MDCLOG_ERR, " Error :: %s, %d : Subscription handler not assigned in message processor !", __FILE__, __LINE__); + return false; + } + + break; + + + case DC_ADM_INT_CONTROL: + { + + // Need to apply config. Since config may need to be + // applied across all threads, we do a callback to the parent thread. + // wait for config to be applied and then send response + _ref_policy_handler(DC_ADM_INT_CONTROL, (const char *) message->payload, message->len, response, true); + std::memcpy( (char *) message->payload, response.c_str(), response.length()); + message->len = response.length(); + message->mtype = DC_ADM_INT_CONTROL_ACK; + return true; + + } + break; + + case DC_ADM_GET_POLICY: + { + _ref_policy_handler(DC_ADM_GET_POLICY, (const char *) message->payload, message->len, response, false); + std::memcpy((char *)message->payload, response.c_str(), response.length()); + message->len = response.length(); + message->mtype = DC_ADM_GET_POLICY_ACK; + return true; + } + break; + + default: + mdclog_write(MDCLOG_ERR, "Error :: Unknown message type %d received from RMR", message->mtype); + }; + + return false; +}; + + +unsigned long const message_processor::get_messages (void){ + return _num_messages; +}; + diff --git a/src/message_processor_class.hpp b/src/message_processor_class.hpp new file mode 100644 index 0000000..bfac580 --- /dev/null +++ b/src/message_processor_class.hpp @@ -0,0 +1,90 @@ +/* +================================================================================== + + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ + + +#pragma once +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef __GNUC__ +#define likely(x) __builtin_expect((x), 1) +#define unlikely(x) __builtin_expect((x), 0) +#else +#define likely(x) (x) +#define unlikely(x) (x) +#endif + +#define BUFFER_LENGTH 2048 + +class message_processor { + +public: + message_processor(); + ~message_processor(void); + + bool operator() (rmr_mbuf_t *); + unsigned long const get_messages (void); + void register_subscription_handler(SubscriptionHandler *); + void register_protector(protector * ); + void register_policy_handler (void (*)(int, const char *, int, std::string &, bool)); + std::vector & get_metrics(void); + +private: + + E2AP_PDU_t * e2ap_recv_pdu; + E2SM_gNB_X2_indicationHeader_t *e2sm_header; // used for decoding + E2SM_gNB_X2_indicationMessage_t *e2sm_message; // used for decoding + + E2AP_PDU_t * e2ap_gen_pdu; // just a placeholder for now + + E2APRicIndication indication_data; + ric_indication indication_processor; + + ric_control_helper control_data; + ric_control_request control_request_processor; + ric_control_response control_response_processor; + + e2sm_header_helper header_helper; + e2sm_message_helper message_helper; + e2sm_indication e2sm_indication_processor; + e2sm_control e2sm_control_processor; + + SubscriptionHandler * _ref_sub_handler; + protector * _ref_protector; + void (* _ref_policy_handler) (int, const char *, int, std::string &, bool); + unsigned long _num_messages; + + unsigned char *scratch_buffer; + size_t remaining_buffer; + unsigned int current_index; + unsigned long int num_indications, num_err_indications; +}; + + +extern bool report_mode_only; +extern int verbose_flag; diff --git a/src/plugin-interface/plugin-interface.cc b/src/plugin-interface/plugin-interface.cc new file mode 100644 index 0000000..a8ae20b --- /dev/null +++ b/src/plugin-interface/plugin-interface.cc @@ -0,0 +1,33 @@ +/* +================================================================================== + + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ + + +#include "plugin-interface.hpp" + + +std::string Policy::getError(void) const{ + return _error; +} +void Policy::setError(std::string & error){ + _error.assign(error); +} + +Policy::~Policy(void){ +}; + diff --git a/src/plugin-interface/plugin-interface.hpp b/src/plugin-interface/plugin-interface.hpp new file mode 100644 index 0000000..e124d53 --- /dev/null +++ b/src/plugin-interface/plugin-interface.hpp @@ -0,0 +1,56 @@ +/* +================================================================================== + + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ + +#pragma once +#ifndef POLICY_BASE +#define POLICY_BASE +#include +// Base abstract Class that provides interface to manage plugins. +// Interface for following actions +// -- configure policy +// -- get policy +// -- get metrics. + +// All plugins should be instantiated within derivatives of this class + +// Direct execution of the plugin on data is done by the message +// operator class. + +class Policy +{ +public: + virtual bool setPolicy(const char *, int, std::string &) = 0; + virtual bool getPolicy(const char *, int , std::string & ) = 0; + virtual int getMetrics(std::string & ) = 0; + virtual std::string getName(void) = 0; + virtual ~Policy(void) = 0; + + std::string getError(void) const; + void setError(std::string &); + + + +private: + + std::string _error; + + +}; + +#endif diff --git a/src/protector-plugin/NetworkProtector.cc b/src/protector-plugin/NetworkProtector.cc new file mode 100644 index 0000000..6412fd4 --- /dev/null +++ b/src/protector-plugin/NetworkProtector.cc @@ -0,0 +1,177 @@ +/* +================================================================================== + + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ + + +#include "NetworkProtector.h" + + +#include // std::mutex +#include // For time() +#include // For srand() and rand() + + +protector::protector(bool enforce, int windowSize_, int threshold_, double blockRate_): m_enforce(enforce), m_windowSize(windowSize_), m_threshold(threshold_), m_blockRate(blockRate_), m_req(0), m_rej(0) +{ + m_counter = 0; + m_window_ref = std::make_unique(m_windowSize); + m_access = std::make_unique(); +} + + +bool protector::operator()(unsigned char *msg_ref, size_t msg_size, unsigned char * buffer, size_t *buf_size ) +{ + + bool res = true; + + std::lock_guard lck(*(m_access.get())); + + X2AP_PDU_t * x2ap_recv = 0; + + // /* Decode */ + asn_dec_rval_t dec_res = asn_decode(0,ATS_ALIGNED_BASIC_PER, &asn_DEF_X2AP_PDU, (void **)&x2ap_recv, msg_ref, msg_size); + + /* Is this an SgNB Addition request ? */ + if (dec_res.code == RC_OK){ + if (x2ap_recv->present == X2AP_PDU_PR_initiatingMessage){ + if (x2ap_recv->choice.initiatingMessage->procedureCode == ProcedureCode_id_sgNBAdditionPreparation ){ + if (x2ap_recv->choice.initiatingMessage->value.present == X2InitiatingMessage__value_PR_SgNBAdditionRequest){ + mdclog_write(MDCLOG_INFO, "Processing X2AP SgNB Addition Request message\n"); + res = true; + } + else{ + mdclog_write(MDCLOG_ERR, "Error :: %s, %d:: X2AP Message (%d) not an SgNB Addition Request\n", __FILE__, __LINE__, x2ap_recv->choice.initiatingMessage->value.present); + res = false; + } + } + else{ + mdclog_write(MDCLOG_ERR, "Error :: %s, %d:: X2AP procedure code %d does not match required %d\n", __FILE__, __LINE__, x2ap_recv->choice.initiatingMessage->procedureCode, ProcedureCode_id_sgNBAdditionPreparation); + res = false; + } + } + else{ + mdclog_write(MDCLOG_ERR, "Error :: %s, %d:: Not an X2AP initiating message. X2AP Message type %d\n", __FILE__, __LINE__, x2ap_recv->present); + res = false; + } + } + else{ + mdclog_write(MDCLOG_ERR, "Error :: %s, %d :: Could not decode X2AP PDU of size %lu bytes \n", __FILE__, __LINE__, msg_size); + res = false; + } + + if (res){ + + //std::cout <<"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" << std::endl; + //xer_fprint(stdout, &asn_DEF_X2AP_PDU, x2ap_recv); + //std::cout <<"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" << std::endl; + + res = sgnb_req.get_fields(x2ap_recv->choice.initiatingMessage, sgnb_data); + if (!res){ + mdclog_write(MDCLOG_ERR, "Error :: %s, %d :: could not get fields from SgNB Addition Request. Reason = %s\n", __FILE__, __LINE__, sgnb_req.get_error().c_str()); + } + + if (res){ + // Admission control + + m_req ++; + // update sliding window + m_window_ref.get()->update_window(1); + if (m_window_ref.get()->net_events > m_threshold && m_enforce){ + res = selectiveBlock(); + } + else{ + res = true; + } + + if (!res){ + m_rej ++; + } + + /* + Generate response message + Do we need to do this ? + What if indication is report type ? + plugin is agnostic to subscription for now, so yes, we always generate + an appropriate response + */ + + // generate sgnb addition response message (ack or reject) + // if rejecting , we use cause = Misc and sub-cause = om_intervention + sgnb_data.cause = Cause_PR_misc; + sgnb_data.cause_desc = CauseMisc_om_intervention; + res = sgnb_resp.encode_sgnb_addition_response(buffer, buf_size, sgnb_data, res); + if (! res){ + mdclog_write(MDCLOG_ERR, "Error :: %s, %d :: could not encode SgNB Addition Response PDU. Reason = %s\n", __FILE__, __LINE__, sgnb_resp.get_error().c_str()); + } + } + } + + ASN_STRUCT_FREE(asn_DEF_X2AP_PDU, x2ap_recv); + return res; + +} + +bool protector::configure(bool enforce, int windowSize_, int threshold_, double blockRate_) +{ + std::lock_guard lck(*(m_access.get())); + + + + m_windowSize=windowSize_; + bool res = m_window_ref.get()->resize_window(m_windowSize); + if (!res){ + return false; + } + + m_enforce = enforce; + m_threshold=threshold_; + m_blockRate=blockRate_; + + mdclog_write(MDCLOG_INFO, "Policy : Enforce mode set to %d\n", m_enforce); + mdclog_write(MDCLOG_INFO, "Policy: Trigger threshold set to %d\n", m_threshold); + mdclog_write(MDCLOG_INFO, "Policy : Blocking rate set to %f\n", m_blockRate); + mdclog_write(MDCLOG_INFO, "Policy : Window Size set to %d\n", m_windowSize); + return true; +} + +unsigned long int protector::get_requests(void) const { + return m_req; +} + +unsigned long int protector::get_rejects(void) const { + return m_rej; +} + +void protector::clear() +{ + std::lock_guard lck(*(m_access.get())); + m_req = 0; + m_rej = 0; + m_window_ref.get()->clear(); +} + + +bool protector::selectiveBlock() +{ + unsigned int num = (rand() % 100) + 1; + if (num > m_blockRate) //not blocking + return true; + else //blocking + return false; +} + diff --git a/src/protector-plugin/NetworkProtector.h b/src/protector-plugin/NetworkProtector.h new file mode 100644 index 0000000..8a69f15 --- /dev/null +++ b/src/protector-plugin/NetworkProtector.h @@ -0,0 +1,72 @@ +/* +================================================================================== + + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ + + +#ifndef NETWORKPROTECTOR_H +#define NETWORKPROTECTOR_H + +#include "sliding_window.hpp" +#include +#include // to decode the X2AP payload +#include // to respond + +#ifdef __GNUC__ +#define likely(x) __builtin_expect((x), 1) +#define unlikely(x) __builtin_expect((x), 0) +#else +#define likely(x) (x) +#define unlikely(x) (x) +#endif + +class protector +{ +public: + + protector( bool enforce, int windowSize_, int threshold_, double blockRate_); + + bool operator()(unsigned char *, size_t , unsigned char *, size_t *); + + bool configure(bool enforce, int windowSize_, int threshold_, double blockRate_); + void clear(); + bool selectiveBlock(); + + unsigned long int get_requests(void) const; + unsigned long int get_rejects(void) const; + std::string get_error(void) { return error_string;}; + +private: + bool m_enforce; // whether to execute logic or not + int m_counter; // count the # of attaching access + int m_windowSize; // time in seconds window for the # of counts + int m_threshold; // count above which we start enforcing if enforce set + double m_blockRate; // % of rejecting rate for counter > threshold + time_t m_timeWindow; // time active window started + unsigned long int m_req; // number of requests + unsigned long int m_rej; // number of rejects + + std::unique_ptr m_window_ref; + std::unique_ptr m_access; + sgnb_addition_helper sgnb_data; + sgnb_addition_request sgnb_req; + sgnb_addition_response sgnb_resp; + + std::string error_string; +}; + +#endif diff --git a/src/protector-plugin/admission_policy.cc b/src/protector-plugin/admission_policy.cc new file mode 100644 index 0000000..6ba81f8 --- /dev/null +++ b/src/protector-plugin/admission_policy.cc @@ -0,0 +1,349 @@ +/* +================================================================================== + + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ + + +#include "admission_policy.hpp" +admission::admission (std::string policy_schema_file, std::string samples_file, std::string metrics_schema_file, unsigned int num_instances){ + bool res; + + if (num_instances == 0){ + throw std::runtime_error("Error ! Number of instances of admission_policy protector pluging must be > 0"); + } + + std::string response; + std::string buffer; + std::string error_string; + + std::vector config_schema_path; + + config_schema_path.clear(); + + // path to node in schema to process policy request + config_schema_path.emplace_back("controls"); + config_schema_path.emplace_back((int)0); + config_schema_path.emplace_back("message_receives_payload_schema"); + config_schema_path[0].add_child(&config_schema_path[1]); + config_schema_path[1].add_child(&config_schema_path[2]); + + set_policy_req_obj.load_schema(policy_schema_file, &config_schema_path[0]); + // mdclog_write(MDCLOG_INFO, "Loaded schema for set Policy request"); + + //path to node in schema to process policy response + config_schema_path.clear(); + config_schema_path.emplace_back("controls"); + config_schema_path.emplace_back(0); + config_schema_path.emplace_back("message_sends_payload_schema"); + config_schema_path[0].add_child(&config_schema_path[1]); + config_schema_path[1].add_child(&config_schema_path[2]); + + set_policy_resp_obj.load_schema(policy_schema_file, &config_schema_path[0]); + mdclog_write(MDCLOG_INFO, "Loaded schema for set Policy response"); + + // load sample response + config_schema_path.clear(); + config_schema_path.emplace_back("message_sends_example"); + + set_policy_resp_obj.load_buffer(samples_file, &config_schema_path[0]); + + // verify that our sample conforms to the schema ... + buffer = set_policy_resp_obj.get_buffer(); + if (! set_policy_resp_obj.is_valid(buffer.c_str(), buffer.length(), response)){ + std::stringstream ss; + ss << "Error ! Sample loaded for SET policy response = " << buffer << " from file " << samples_file << " not valid. Reason = " << response; + throw std::runtime_error(ss.str()); + } + mdclog_write(MDCLOG_INFO, "Verified sample for set Policy response"); + + // path to node in schema to respond to get policy (current same as set policy) + config_schema_path.clear(); + config_schema_path.emplace_back("controls"); + config_schema_path.emplace_back(0); + config_schema_path.emplace_back("message_receives_payload_schema"); + config_schema_path[0].add_child(&config_schema_path[1]); + config_schema_path[1].add_child(&config_schema_path[2]); + + get_policy_resp_obj.load_schema(policy_schema_file, &config_schema_path[0]); + mdclog_write(MDCLOG_INFO, "Loaded schema for get Policy response"); + + + // sample to respond to get policy + config_schema_path.clear(); + config_schema_path.emplace_back("message_receives_example"); + + get_policy_resp_obj.load_buffer(samples_file, &config_schema_path[0]); + + // verify that our sample conforms to schema + buffer = get_policy_resp_obj.get_buffer(); + if (! get_policy_resp_obj.is_valid(buffer.c_str(), buffer.length(), response)){ + std::stringstream ss; + ss << "Error ! Sample loaded for GET policy response = " << buffer << " from file " << samples_file << " not valid. Reason = " << response; + throw std::runtime_error(ss.str()); + + } + + mdclog_write(MDCLOG_INFO, "Verified sample for get Policy response"); + + // schema & sample for metrics + metrics_obj.load_schema(metrics_schema_file); + mdclog_write(MDCLOG_INFO, "Loaded schema for ves metrics"); + + config_schema_path.clear(); + config_schema_path.emplace_back("metrics"); + + metrics_obj.load_buffer(samples_file, &config_schema_path[0]); + + // verify sample conforms to schema + buffer = metrics_obj.get_buffer(); + if (! metrics_obj.is_valid(buffer.c_str(), buffer.length(), response)){ + std::stringstream ss; + ss << "Error ! Sample loaded for VES = " << buffer << " from file " << samples_file << " not valid. Reason = " << response; + throw std::runtime_error(ss.str()); + } + + mdclog_write(MDCLOG_INFO, "Verified sample for metrics"); + + setPolicyVars(); + + + //instantiate the core policy object + for(unsigned int i = 0; i < num_instances; i++){ + instantiate_protector_plugin(); + } + +}; + +void admission::instantiate_protector_plugin(void){ + _plugin_instances.emplace_back(bool(current_config["enforce"]), current_config["window_length"], current_config["blocking_rate"], current_config["trigger_threshold"]); +} + +admission::~admission(void){ + prev_values.clear(); + curr_values.clear(); + policy_vars.clear(); + set_policy_response.clear(); + get_policy_response.clear(); + metric_responses.clear(); + policy_pointer.clear(); +} + + +std::string admission::getName(void){ + return std::string("admission control policy"); +} + +void admission::setPolicyVars(void){ + + + // keys in request to set policy + policy_vars.emplace_back("enforce"); + policy_vars.emplace_back("window_length"); + policy_vars.emplace_back("blocking_rate"); + policy_vars.emplace_back("trigger_threshold"); + + + // keys in response to set policy + set_policy_response.emplace_back("status"); + set_policy_response.emplace_back("message"); + + + policy_pointer.push_back(&policy_vars[0]); + policy_pointer.push_back(&policy_vars[1]); + policy_pointer.push_back(&policy_vars[2]); + policy_pointer.push_back(&policy_vars[3]); + + + // keys in metric response + metric_responses.emplace_back("event"); // 0 + metric_responses.emplace_back("commonEventHeader"); // 1 + metric_responses.emplace_back("measurementFields"); // 2 + metric_responses.emplace_back("additionalFields"); // 3 + metric_responses.emplace_back("SgNB Request Rate"); // 4 + metric_responses.emplace_back("SgNB Accept Rate"); // 5 + metric_responses.emplace_back("startEpochMicrosec"); // 6 + metric_responses.emplace_back("measurementInterval"); // 7 + metric_responses.emplace_back("lastEpochMicrosec");//8 + //metric_responses.emplace_back("TS"); //9 + + metric_responses[0].add_child(&metric_responses[1]); + metric_responses[0].add_child(&metric_responses[2]); + + metric_responses[1].add_child(&metric_responses[6]); + metric_responses[1].add_child(&metric_responses[8]); + + metric_responses[2].add_child(&metric_responses[3]); + metric_responses[2].add_child(&metric_responses[7]); + + metric_responses[3].add_child(&metric_responses[4]); + metric_responses[3].add_child(&metric_responses[5]); + //metric_responses[3].add_child(&metric_responses[9]); + + // default config map for the policy object + current_config.insert(std::pair("enforce", 1)); + current_config.insert(std::pair("window_length", 60)); + current_config.insert(std::pair("blocking_rate", 1)); + current_config.insert(std::pair("trigger_threshold", 1)); + + prev_config = current_config; + + auto ts = std::chrono::time_point_cast(std::chrono::system_clock::now()); + auto epoch = ts.time_since_epoch(); + auto val = std::chrono::duration_cast(epoch); + prev_time_stamp = val.count(); + prev_values.push_back(0); + prev_values.push_back(0); + curr_values = prev_values; +} + +protector * admission::get_protector_instance(unsigned int index){ + if (index > _plugin_instances.size() -1){ + mdclog_write(MDCLOG_ERR, "%s, %d: Error . Requested index %u exceeds number of plugin instances %u", __FILE__, __LINE__, index, _plugin_instances.size()); + return NULL; + } + else{ + return &_plugin_instances[index]; + } +}; + + + +bool admission::setPolicy(const char * message, int message_length, std::string & response){ + + // Get the configuration + std::vector available_keys; + std::vector roots; + bool res; + + std::vectorresp_pointer; + resp_pointer.push_back(&set_policy_response[0]); + resp_pointer.push_back(&set_policy_response[1]); + + std::string local_response; + for(unsigned int i = 0; i < policy_vars.size(); i++){ + int res = set_policy_req_obj.get_values(message, message_length, local_response, &policy_vars[i], available_keys); + if (res != 0 ){ + setError(local_response); + set_policy_response[0].set_value("FAIL"); + set_policy_response[1].set_value(local_response); + set_policy_resp_obj.set_values(response, resp_pointer); + + return false; + } + } + + if ( available_keys.size() == 0){ + local_response = "No Keys were found"; + setError(local_response); + set_policy_response[0].set_value("FAIL"); + set_policy_response[1].set_value(local_response); + + set_policy_resp_obj.set_values(response,resp_pointer); + return false; + } + + + // Get new config + prev_config = current_config; + + for(std::vector::iterator it = available_keys.begin(); it != available_keys.end(); ++it){ + DataContainer const * id = (*it)->get_id(); + DataContainer const * val = (*it)->get_value(); + auto e = current_config.find(id->value.s.c_str()); + if (e != current_config.end()){ + e->second = val->value.i; + } + + } + + // Note : xapp schema specifies window be in 'minutes'. Sliding window implementation maintains in seconds, hence multiply by 60 + current_config["window_length"] *= 60; + + // Apply the config + res= true; + for(std::vector::iterator it_p = _plugin_instances.begin(); it_p != _plugin_instances.end(); ++it_p){ + + res = (*it_p).configure( bool(current_config["enforce"]), current_config["window_length"], current_config["trigger_threshold"], current_config["blocking_rate"]); + if (!res){ + mdclog_write(MDCLOG_ERR, "Error ::%s, %d :: Could not configure plugin\n", __FILE__, __LINE__); + set_policy_response[0].set_value("FAIL"); + set_policy_response[1].set_value("Could not apply configuration"); + break; + } + } + + if (res){ + set_policy_response[0].set_value("SUCCESS"); + set_policy_response[1].set_value("configuration applied"); + } + + set_policy_resp_obj.set_values(response,resp_pointer); + return true; + +}; + +bool admission::getPolicy(const char * message, int message_length, std::string & response){ + + // Note : by same token, when returning sliding window length : translate to + // minutes + policy_vars[0].set_value(bool(current_config["enforce"])); + policy_vars[1].set_value((int)( (double)current_config["window_length"]/60.0)); + policy_vars[2].set_value(current_config["blocking_rate"]); + policy_vars[3].set_value(current_config["trigger_threshold"]); + + int res = get_policy_resp_obj.set_values(response, policy_pointer); + return true; + +} + + +int admission::getMetrics(std::string & response){ + std::vector metric_pointers; + metric_pointers.push_back(&metric_responses[0]); + + auto ts = std::chrono::time_point_cast(std::chrono::system_clock::now()); + auto epoch = ts.time_since_epoch(); + auto val_ms = std::chrono::duration_cast(epoch); + auto val_s = std::chrono::duration_cast(epoch); + + long int current_time_stamp = val_ms.count(); + long int current_time = val_s.count(); + long int interval = current_time_stamp - prev_time_stamp; + + + curr_values[0] = _plugin_instances[0].get_requests(); + curr_values[1] = _plugin_instances[0].get_rejects(); + + //curr_values[0] = rand()%100 + prev_values[0]; + //curr_values[1] = rand()%20 + prev_values[1]; + + //std::cout <<" Accept counter = " << curr_values[0]<< " Reject counter = " << curr_values[1] << " Request Count = " << (curr_values[0] - prev_values[0]) << " Reject count = " << curr_values[1] - prev_values[1] << std::endl; + + metric_responses[4].set_value(std::to_string(curr_values[0] - prev_values[0])); + metric_responses[5].set_value(std::to_string((curr_values[0] - prev_values[0]) - (curr_values[1] - prev_values[1]))); + metric_responses[6].set_value(prev_time_stamp); + metric_responses[8].set_value(current_time_stamp); + metric_responses[7].set_value(interval); + //metric_responses[9].set_value(current_time); + + prev_values = curr_values; + prev_time_stamp = current_time_stamp; + int res = metrics_obj.set_values(response, metric_pointers); + + return res; + +} diff --git a/src/protector-plugin/admission_policy.hpp b/src/protector-plugin/admission_policy.hpp new file mode 100644 index 0000000..8145458 --- /dev/null +++ b/src/protector-plugin/admission_policy.hpp @@ -0,0 +1,80 @@ +/* +================================================================================== + + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ + + +/* The control wrapper class around the plugin + The wrapper class is responsible for control operations of the plugin : + set policy + get policy + report metrics + + the plugin handles X2AP messages +*/ +#pragma once +#ifndef ADMISSION_CTRL +#define ADMISSION_CTRL +#include +#include +#include +#include +#include +#include + +class admission: virtual public Policy +{ +public: + admission(std::string, std::string, std::string, unsigned int); + ~admission(void); + protector * get_protector_instance(unsigned int); + bool setPolicy(const char *, int , std::string & ); + bool getPolicy(const char * , int, std::string & ); + std::string getName(void); + int getMetrics(std::string & ) ; + +private: + void storePolicy(void); + void init_log(void); + void setPolicyVars(void); + void instantiate_protector_plugin(void); + + std::map current_config; + std::map prev_config; + std::vector _plugin_instances; + + std::vector policy_vars; + std::vector set_policy_response; + std::vector get_policy_response; + std::vector metric_responses; + std::vector policy_pointer; + + jsonHandler set_policy_req_obj; + jsonHandler set_policy_resp_obj; + + jsonHandler get_policy_req_obj; + jsonHandler get_policy_resp_obj; + + jsonHandler metrics_obj; + + std::vector prev_values; + std::vector curr_values; + + unsigned long int prev_time_stamp; +}; + +#endif diff --git a/src/protector-plugin/sliding_window.cc b/src/protector-plugin/sliding_window.cc new file mode 100644 index 0000000..71eefe8 --- /dev/null +++ b/src/protector-plugin/sliding_window.cc @@ -0,0 +1,141 @@ +/* +================================================================================== + + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ + +#include "sliding_window.hpp" + + +sliding_window::sliding_window(unsigned int window_size){ + + if (window_size < MIN_WINDOW_SIZE){ + std::stringstream ss; + ss << "Error ::" << __FILE__ << ","<< __LINE__ << " window size must be >= " << MIN_WINDOW_SIZE << " Specified = " << window_size << std::endl; + error_string = ss.str(); + throw std::logic_error(error_string); + } + + if (window_size > MAX_WINDOW_SIZE){ + std::stringstream ss; + ss << "Error ::" << __FILE__ << ","<< __LINE__ << " window size must be <= " << MAX_WINDOW_SIZE << " Specified = " << window_size << std::endl; + std::string error_string = ss.str(); + throw std::logic_error(error_string); + } + + window_size_ = window_size; + sliding_window_.resize(window_size_); + + head = window_size_ -1; + tail = 0; + net_events = 0; + leading_edge_ = std::chrono::steady_clock::now(); +} + +// expect to be called very frequently .... +bool sliding_window::update_window(unsigned int events){ + // get current time + auto current_edge = std::chrono::steady_clock::now(); + + int shift = std::chrono::duration_cast(current_edge - leading_edge_).count(); + + if (shift < 0){ + // we do not update any events if they happened in the past + // by more than unit of window .. (1 second currently) + return false; + } + + // Advance window if shift >= 1 + if (shift >= 1){ + leading_edge_ = current_edge; + } + + if (shift >= window_size_){ + // gap between current time and leading edge + // exceeds window size. Clear everything ... + tail = 0; + head = window_size_ -1; + std::fill(sliding_window_.begin(), sliding_window_.end(), 0); + sliding_window_[head] = events ; + net_events = events; + return true; + } + + for(int i = 0; i < shift; i++){ + // Advance tail & head by requisite amount, reducing net event rate .. + net_events -= sliding_window_[tail]; + sliding_window_[tail] = 0; + tail += 1; + if (tail >= window_size_){ + tail = 0; + } + + head += 1; + if (head >= window_size_){ + head = 0; + } + } + + sliding_window_[head] += events; + net_events += events; + + //std::cout < MAX_WINDOW_SIZE){ + std::stringstream ss; + ss << "Error ::" << __FILE__ << ","<< __LINE__ << " window size must be in [ " << MIN_WINDOW_SIZE << "," << MAX_WINDOW_SIZE << "]" << std::endl; + error_string = ss.str(); + return false; + } + + window_size_ = window_size; + sliding_window_.clear(); + sliding_window_.resize(window_size_); + net_events = 0; + head = window_size_ -1; + tail = 0; + leading_edge_ = std::chrono::steady_clock::now(); + return true; +} + +std::string sliding_window::display_window(void){ + std::stringstream ss; + for(unsigned int i = 0; i < sliding_window_.size(); i++){ + if (i == head){ + ss <<"[H] "; + } + if (i == tail){ + ss <<"[T] "; + } + + ss < +#include +#include +#include +#include + +#define MIN_WINDOW_SIZE 1 // in seconds +#define MAX_WINDOW_SIZE 604800 // in seconds 1 week + +class sliding_window { + +public: + sliding_window(unsigned int); + bool update_window (unsigned int); + std::string display_window(void); + bool resize_window(unsigned int); + std::string get_error(void) { return error_string ;}; + unsigned int net_events; + void clear(void); + +private: + std::vector sliding_window_; + unsigned int head, tail, window_size_; + std::chrono::time_point leading_edge_; + std::string error_string; +}; + + +#endif diff --git a/src/run_xapp.sh b/src/run_xapp.sh new file mode 100755 index 0000000..1848824 --- /dev/null +++ b/src/run_xapp.sh @@ -0,0 +1,12 @@ +#! /bin/bash +SAMPLES=../schemas/samples.json +A1_SCHEMA=../schemas/adm-ctrl-xapp-schema.json +VES_SCHEMA=../schemas/ves_schema.json +VES_POST_INTERVAL=10 +#VES_URL=http://192.168.100.34:9200/acxapp/_doc +VES_URL=http://127.0.0.1:6350 +THREADS=1 +gNodeB=NYC123,ABC345,CDR331 +OP_MODE=REPORT +#echo "Running ./adm-ctrl-xapp -s $SAMPLES -a $A1_SCHEMA -i $VES_POST_INTERVAL -g $gNodeB -v $VES_SCHEMA -t $THREADS"; +./adm-ctrl-xapp -s $SAMPLES -a $A1_SCHEMA -u $VES_URL -i $VES_POST_INTERVAL -g $gNodeB -v $VES_SCHEMA -t $THREADS -c $OP_MODE diff --git a/src/xapp_utils.cc b/src/xapp_utils.cc new file mode 100644 index 0000000..8130a1d --- /dev/null +++ b/src/xapp_utils.cc @@ -0,0 +1,293 @@ +/* +================================================================================== + + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ + +/* Author : Ashwin Sridharan + Date : Feb 2019 +*/ + + +#include "xapp_utils.hpp" + +// Constructor that automatically determines number of threads +XaPP::XaPP(char *xapp_name, char *proto_port, int msg_size): _is_ready(0), _listen(false), _num_retries(2), _msg_size(msg_size), _num_attempts(0), _num_fails(0){ + + _num_threads = std::thread::hardware_concurrency(); + strcpy(_xapp_name, xapp_name); + strcpy(_proto_port, proto_port); + init(_msg_size); + get_routes(); + +}; + + + +// Constructor that takes number of threads as argument +XaPP::XaPP(char *xapp_name, char *proto_port, int msg_size, int num_threads): _is_ready(0), _listen(false), _num_retries(2), _msg_size(msg_size), _num_threads(num_threads),_num_attempts(0), _num_fails(0) { + + strcpy(_xapp_name, xapp_name); + strcpy(_proto_port, proto_port); + init(_msg_size); + get_routes(); + +}; + +// Destructor closes rmr context if available +XaPP::~XaPP(void){ + + // Call stop to clear thread table + Stop(); + + // free memory + rmr_free_msg(_rmr_tx_message); + + if (_rmr_ctx){ + rmr_close(_rmr_ctx); + } + // delete mutex + delete _transmit; +}; + +// Get the RMR context +void XaPP::init(int msg_size){ + + if (msg_size > RMR_BUFFER_SIZE or msg_size <= 0){ + std::stringstream ss; + ss << "Error ::" << __FILE__ << "," << __LINE__ << " Invalid buffer size " << msg_size << " for RMR initialization context. Must be between " << 1 << " and " << RMR_BUFFER_SIZE << std::endl; + ss << " To change max buffer requested, update RMR_BUFFER_SIZE " << std::endl; + mdclog_write(MDCLOG_ERR, ss.str().c_str(), ""); + throw ss.str(); + } + + // Initialze the rmr context + if ( (_rmr_ctx = rmr_init(_proto_port, msg_size, RMRFL_NONE)) == NULL){ + // throw exception here .. + std::stringstream ss; + ss << "Error ::" << __FILE__ << "," << __LINE__ << " Error initiatilizing RMR context for " << _xapp_name << " on port " << _proto_port << " Reason = " << strerror(errno) << std::endl; + mdclog_write(MDCLOG_ERR, ss.str().c_str(), ""); + throw ss.str(); + } + +} + + +// Blocks till routing table is received +void XaPP::get_routes(void){ + + // Wait for getting a routing table ... + int i = 0; + _is_ready = 0; + while( i < MAX_WAIT_TIME){ + std::cout <<"Waiting for RMR to be ready " << std::endl; + if ((_is_ready = rmr_ready(_rmr_ctx)) == 1){ + break; + } + sleep(1); + i++; + }; + + if(!_is_ready){ + std::string identifier = __FILE__ + std::string(", Line: ") + std::to_string(__LINE__) ; + std::string error_string = identifier + " Error getting routing table"; + throw std::runtime_error(error_string); + } + + + // Get a tx buffer in case we need to do a transmit from the main thread itself + if ( (_rmr_tx_message = rmr_alloc_msg(_rmr_ctx, RMR_BUFFER_SIZE)) == NULL){ + // throw exception here .. + std::string identifier = __FILE__ + std::string(", Line: ") + std::to_string(__LINE__) ; + std::string error_string = identifier + " Error getting a send buffer"; + throw std::runtime_error(error_string); + } + + std::cout <<"Route Table received. Send buffer allocated" << std::endl; + _transmit = new std::mutex(); + +} + +// Send method that takes TLV (type/length/value) input +bool XaPP::Send(int type, int payload_len, void *payload){ + + if (likely(_is_ready)){ + if (likely(payload_len <= RMR_BUFFER_SIZE)){ + _rmr_tx_message->mtype = type; + memcpy(_rmr_tx_message->payload, payload, payload_len); + _rmr_tx_message->len = payload_len; + return Send(_rmr_tx_message); + } + else{ + std::string identifier = __FILE__ + std::string(", Line: ") + std::to_string(__LINE__) ; + std::string error_string = identifier + " message payload len " + std::to_string(payload_len) + " exceeds maximum buffer size " + std::to_string(RMR_BUFFER_SIZE); + mdclog_write(MDCLOG_ERR, error_string.c_str(), ""); + } + } + else{ + std::string identifier = __FILE__ + std::string(", Line: ") + std::to_string(__LINE__) ; + std::string error_string = identifier + " rmr not ready to send"; + mdclog_write(MDCLOG_ERR, error_string.c_str(), ""); + } + + return false; +} + +// Send method that takes TLV (type/length/value) input + MEID +bool XaPP::Send(int type, int payload_len, void *payload, unsigned char const * meid){ + if (!_is_ready){ + return false; + } + + _rmr_tx_message->mtype = type; + memcpy(_rmr_tx_message->payload, payload, payload_len); + _rmr_tx_message->len = payload_len; + rmr_str2meid(_rmr_tx_message, meid); + return Send(_rmr_tx_message); + +} + + +// Send method that takes a buffer +bool XaPP::Send(rmr_mbuf_t * rmr_tx_message){ + + if(likely(_is_ready && rmr_tx_message->len <= RMR_BUFFER_SIZE && rmr_tx_message->len > 0)){ + int i = 0; + rmr_tx_message->sub_id = RMR_VOID_SUBID; + while(i <= _num_retries){ + + //rmr_tx_message->state = 0; // fix for nng + rmr_tx_message = rmr_send_msg(_rmr_ctx, rmr_tx_message); + _num_attempts ++; + + if (! rmr_tx_message){ + // CRITICAL EROR .. log it + std::string identifier = __FILE__ + std::string(", Line: ") + std::to_string(__LINE__) ; + std::string error_string = identifier + " rmr_send returned NULL"; + mdclog_write(MDCLOG_ERR, error_string.c_str(), ""); + return false; + } + else if (rmr_tx_message->state == RMR_OK){ + return true; + } + else if(rmr_tx_message->state == RMR_ERR_RETRY){ + i++; + _num_fails++; + } + else { + mdclog_write(MDCLOG_ERR, "Error : %s, %d. Unable to transmit RMR message. RMR state = %d, %s\n", __FILE__, __LINE__, rmr_tx_message->state, strerror(errno)); + return false; + } + + } + } + else{ + mdclog_write(MDCLOG_ERR, "Error: %s, %d Invalid state/message for RMR tx. Ready = %d, Message len = %d\n", __FILE__, __LINE__, _is_ready, rmr_tx_message->len); + return false; + } + + std::stringstream ss; + ss << "Error ::" << __FILE__ << "," << __LINE__ << " Could not send message of type " << rmr_tx_message->mtype << " and size " << rmr_tx_message->len << ". Reason = " << strerror(errno); + mdclog_write(MDCLOG_ERR, ss.str().c_str(), ""); + + return false; +} + + + + +void XaPP::Stop(void){ + // Get the mutex lock + std::lock_guard guard(*_transmit); + _listen = false; + + //Wait for all threads to stop + for(auto & t: thread_group){ + std::thread::id my_id = t.second.get_id(); + std::stringstream thread_id; + thread_id << my_id; + t.second.join(); + + } + + // Clear thread table ... + thread_group.clear(); + +} + +// default error handler if non specified by user +// pass through for now +void XaPP::_error_handler(rmr_mbuf_t *message){ +}; + + + + +//---------------------------------------- +// Some get/set methods +//--------------------------------------- + +std::string XaPP::getName(void){ + return std::string(_xapp_name); +} + +int XaPP::getStatus(void){ + return _is_ready; +} + +bool XaPP::_isRunning(void){ + return _listen; +} + + +void * XaPP::get_rmr_context(void){ + return _rmr_ctx; +} + +void XaPP::set_num_retries(int num_retries){ + if (num_retries < 0 || num_retries > MAX_RETRIES){ + throw "[xapp_utils] : Illegal value of num_retries. Must be positive integer between 0 and MAX_RETRIES\n"; + } + + _num_retries = num_retries; +} + +int XaPP::get_num_retries(void){ + return _num_retries; +} + + +unsigned long XaPP::get_Send_attempts(void){ + return _num_attempts; +}; + + +unsigned long XaPP::get_Send_fails(void){ + return _num_fails; +}; + + + + +void init_logger(const char *AppName, mdclog_severity_t log_level) +{ + mdclog_attr_t *attr; + mdclog_attr_init(&attr); + mdclog_attr_set_ident(attr, AppName); + mdclog_init(attr); + mdclog_level_set(log_level); + mdclog_attr_destroy(attr); +} diff --git a/src/xapp_utils.hpp b/src/xapp_utils.hpp new file mode 100644 index 0000000..fd9843c --- /dev/null +++ b/src/xapp_utils.hpp @@ -0,0 +1,366 @@ +/* +================================================================================== + + Copyright (c) 2018-2019 AT&T Intellectual Property. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +================================================================================== +*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#ifndef XAPP_UTIL +# define XAPP_UTIL + +#define DEBUG 0 + +#define XAPP_NAME_LENGTH 128 +#define PROTO_PORT_LENGTH 16 +#define MAX_RETRIES 16 +#define MAX_WAIT_TIME 10 +#define EPOLL_TIMEOUT 500 //in milli-seconds +#define RMR_TIMEOUT 50// in mill-seconds +#define RMR_BUFFER_SIZE 16384 +#define MAX_THREADS 8 + +#ifdef __GNUC__ +#define likely(x) __builtin_expect((x), 1) +#define unlikely(x) __builtin_expect((x), 0) +#else +#define likely(x) (x) +#define unlikely(x) (x) +#endif + +void init_logger(const char *AppName, mdclog_severity_t log_level); + + +class XaPP { + + public: + + XaPP(char *, char *, int); + XaPP(char *, char *, int, int); + ~XaPP(void); + XaPP(XaPP &&) = default; // destructor freaks out with non-copyable thread otherwise .. + std::string getName(void); + int getStatus(void); + + // ideally can reduce tempate definitions to just two + // but for now leaving it open ... + + // template definition to allow a user defined + // processor to be started in multiple threads + template + void Start(messageProcessor &&); + + // template definition to allow a user defined + // processor and error handler if a send fails + // to be started in multiple threads + template + void Start(messageProcessor &&, errorHandler &&); + + // Template to allow a user defined processor to start + // on a single thread each time it is invoked + template + unsigned int StartThread(messageProcessor &&); + + // Template to allow a user defined processor and + // error handle to start // on a single thread each time it + // is invoked + template + unsigned int StartThread(messageProcessor &&, errorHandler &&); + + void Stop(void); + bool Send(int type, int payload_len, void *payload); + bool Send(int type, int payload_len, void *payload, unsigned char const *meid); + bool Send(rmr_mbuf_t * rmr_tx_message); + void * get_rmr_context(void); + void set_num_retries(int ); + int get_num_retries(void ); + unsigned long get_Send_attempts(void); + unsigned long get_Send_fails(void); + +private: + + void init(int); + void get_routes(); + void _error_handler(rmr_mbuf_t *); // pass through placeholder + + template + void _workThread(messageProcessor &&, errorHandler &&, XaPP *); + + char _xapp_name[XAPP_NAME_LENGTH]; + char _proto_port[PROTO_PORT_LENGTH]; + + int _is_ready; + bool _listen; + int _num_retries; + int _msg_size; + unsigned int _num_threads; + unsigned long _num_attempts; + unsigned long _num_fails; + + void* _rmr_ctx; + std::mutex *_transmit; + std::map thread_group; + rmr_mbuf_t * _rmr_tx_message; + + bool _isRunning(void); + +}; + + +template +void XaPP::_workThread(messageProcessor && msg_fn, errorHandler && error_handler, XaPP *parent){ + + + // Get the thread id + std::thread::id my_id = std::this_thread::get_id(); + std::stringstream thread_id; + thread_id << my_id; + + // Stats counters + unsigned long recvs = 0; + unsigned long attempts = 0; + unsigned long fails = 0; + + // Get the rmr context + void *rmr_context = parent->get_rmr_context(); + if (!rmr_context){ + std::string identifier = __FILE__ + std::string(", Line: ") + std::to_string(__LINE__) ; + std::string error_string = identifier + " Thread : " + thread_id.str() + " Listener cannot run : no context available"; + mdclog_write(MDCLOG_ERR, error_string.c_str(), ""); + throw error_string; + } + + // Get buffer specific to this thread + rmr_mbuf_t *rmr_message; + if ( (rmr_message = rmr_alloc_msg(rmr_context, RMR_BUFFER_SIZE)) == NULL){ + // throw exception here .. + std::string identifier = __FILE__ + std::string(", Line: ") + std::to_string(__LINE__) ; + std::string reason = strerror(errno); + std::string error_string = identifier + " Thread: " + thread_id.str() + " Error getting a buffer : " + reason; + mdclog_write(MDCLOG_ERR, error_string.c_str(), ""); + throw error_string; + } + + + // Create an epoll instance + int rcv_fd, ep_fd; + struct epoll_event eve, trigger; + if( (rcv_fd = rmr_get_rcvfd(rmr_context)) < 0){ + std::string identifier = __FILE__ + std::string(", Line: ") + std::to_string(__LINE__) ; + std::string reason = strerror(errno); + std::string error_string = identifier + " Thread: " + thread_id.str() + " Error getting a receive file descriptor : " + reason; + mdclog_write(MDCLOG_ERR, error_string.c_str(), ""); + throw error_string; + } + + if( (ep_fd = epoll_create1(0) ) < 0){ + std::string identifier = __FILE__ + std::string(", Line: ") + std::to_string(__LINE__) ; + std::string reason = strerror(errno); + std::string error_string = identifier + " Thread: " + thread_id.str() + " Error getting an epoll file descriptor :" + reason; + mdclog_write(MDCLOG_ERR, error_string.c_str(), ""); + throw error_string; + } + + trigger.events = EPOLLIN|EPOLLET|EPOLLONESHOT; + trigger.data.fd = rcv_fd; + + if (epoll_ctl (ep_fd, EPOLL_CTL_ADD, rcv_fd, &trigger) < 0){ + std::string identifier = __FILE__ + std::string(", Line: ") + std::to_string(__LINE__) ; + std::string reason = strerror(errno); + std::string error_string = identifier + " Thread: " + thread_id.str() + " Error registering epoll file descriptor : " + reason; + mdclog_write(MDCLOG_ERR, error_string.c_str(), ""); + throw error_string; + } + + + int num_retries = this->get_num_retries(); + int i = 0; + int num_fds = 0; + bool send_ok; + + mdclog_write(MDCLOG_INFO, "Starting thread %s", thread_id.str().c_str()); + + while(parent->_isRunning()){ + num_fds = epoll_wait(ep_fd, &eve, 1, EPOLL_TIMEOUT); + + if(num_fds && eve.data.fd == rcv_fd){ + rmr_message = rmr_torcv_msg(rmr_context, rmr_message, RMR_TIMEOUT); + //rmr_message = rmr_rcv_msg(rmr_context, rmr_message); + + // Re-arm the trigger + if (epoll_ctl (ep_fd, EPOLL_CTL_MOD, rcv_fd, &trigger) < 0){ + std::string identifier = __FILE__ + std::string(", Line: ") + std::to_string(__LINE__) ; + std::string reason = strerror(errno); + std::string error_string = identifier + " Thread: " + thread_id.str() + " Error re-arming epoll : " + reason; + mdclog_write(MDCLOG_ERR, error_string.c_str(), ""); + throw error_string; + } + + } + else{ + continue; + }; + + if (rmr_message && rmr_message->state == RMR_OK){ + + recvs++; + bool res = msg_fn(rmr_message); + + // is there anything to send + if (res && rmr_message != NULL && likely (rmr_message->len > 0 && rmr_message->len <= RMR_BUFFER_SIZE)){ + i = 0; + rmr_message->sub_id = RMR_VOID_SUBID; + send_ok = false; + + while(i < num_retries){ + + // Need to handle differently depending on whether message + // is for A1 (determined by type) or non-A1. + // For now, A1 requires we bypass the routing table and send + // directly back to originator using rmr_rts_msg rather than + // over the bus + + if (unlikely(rmr_message->mtype == DC_ADM_INT_CONTROL_ACK || rmr_message->mtype == DC_ADM_GET_POLICY_ACK)){ + rmr_message = rmr_rts_msg(rmr_context, rmr_message); + } + else{ + rmr_message->state = 0; // fix for nng + rmr_message = rmr_send_msg(rmr_context, rmr_message); + } + attempts ++; + + if (! rmr_message){ + // CRITICAL error. break out of loop + std::string identifier = __FILE__ + std::string(", Line: ") + std::to_string(__LINE__) ; + std::string error_string = identifier + " rmr_send returned NULL"; + mdclog_write(MDCLOG_ERR, error_string.c_str(), ""); + break; + } + else if (rmr_message->state == RMR_OK){ + send_ok = true; + break; + } + + else if(rmr_message->state == RMR_ERR_RETRY){ + i++; + fails++; + } + else{ + mdclog_write(MDCLOG_ERR, "Error : %s, %d. Unable to transmit RMR message. RMR state = %d, %s\n", __FILE__, __LINE__, rmr_message->state, strerror(errno)); + break; + } + + } + + if (send_ok == false){ + error_handler(rmr_message); + } + + } + + } + } + + + // Clean up + try{ + rmr_free_msg(rmr_message); + } + catch(std::runtime_error &e){ + std::string identifier = __FILE__ + std::string(", Line: ") + std::to_string(__LINE__) ; + std::string error_string = identifier = " Error freeing RMR message "; + mdclog_write(MDCLOG_ERR, error_string.c_str(), ""); + } + + mdclog_write(MDCLOG_INFO, "Finished thread %s : Recv = %lu, Tx Attempts = %lu, Tx Fail = %lu", thread_id.str().c_str(), recvs, attempts, fails); +} + + +template +void XaPP::Start(messageProcessor && msg_fn){ + + std::lock_guard guard(*_transmit); + _listen = true; + + // Spin up the the workThreads ..... + for(unsigned int i = 0; i < _num_threads; i++){ + thread_group.insert(std::make_pair(i, std::thread( ([&](){_workThread(msg_fn, std::bind(&XaPP::_error_handler, this, std::placeholders::_1), this);})))); + } + +}; + +// template if calling function provides an error handler also +template +void XaPP::Start(messageProcessor && msg_fn, errorHandler && error_handler){ + + std::lock_guard guard(*_transmit); + _listen = true; + + // Spin up the the workThreads ..... + for(unsigned int i = 0; i < _num_threads; i++){ + //std::cout << "Starting thread number " << i << std::endl; + thread_group.insert(std::make_pair(i, std::thread( ([&](){_workThread(msg_fn, error_handler, this);})))); + + } + + +}; + +// Template to allow a user defined processor to start +// on a specific thread +template +unsigned int XaPP::StartThread(messageProcessor && msg_fn){ + + std::lock_guard guard(*_transmit); + _listen = true; + + _num_threads++; + thread_group.insert(std::make_pair(_num_threads, std::thread( ([&](){_workThread(msg_fn, std::bind(&XaPP::_error_handler, this, std::placeholders::_1), this);})))); + return _num_threads; + +}; + + +// Template to allow a user defined processor and error handler to start +// on a specific thread +template +unsigned int XaPP::StartThread(messageProcessor && msg_fn, errorHandler && error_handler){ + + std::lock_guard guard(*_transmit); + _listen = true; + + _num_threads++; + thread_group.insert(std::make_pair(_num_threads, std::thread( ([&](){_workThread(msg_fn, error_handler, this);})))); + return _num_threads; + +}; + + +#endif -- 2.16.6